2014-02-28 35 views
0

我很新的阿達,我看到了下面的阿達例如可以在任何一個它做了什麼代碼,CS和CSMap是什麼意思?

-- 
-- An array of array (which is different from a 2-d array). 
-- 
with Gnat.Io; use Gnat.Io; 
procedure Arr4 is 
    type CS is (G_Wiggins, M_Wiggins, Bennet, Woodall); 
    type CSMap is array (CS) of Integer; 
    A: array (1..3) of CSMap :=((4, 8, 17, 34),(9, 11, 3, -2),(6, 21, 2, 18)); 
    I: Integer; 
    P: CS; 
    Row: CSMap; 
begin 
    -- Print it the usual way. 
    for I in 1..3 loop 
     for P in CS loop 
      Put(A(I)(P)); 
      Put(" "); 
     end loop; 
     New_Line; 
    end loop; 
    New_Line; 
end Arr4; 

這裏究竟CS和CSMap意味着什麼?

+0

網絡編程的名字guage是Ada,這是女士們的名字,不是簡稱; ADA是美國殘疾人法案(或其他任何可能代表的),所以我建議你解決你的拼寫問題。這樣,您的帖子可能會在區分大小寫的谷歌搜索中顯示。 – darkestkhan

+0

修正了他。 –

回答

5

CS是一個枚舉,CSMap是由該枚舉索引的數組。 A是一個CSMaps數組。

他們的意思是不清楚,因爲CS可怕的選擇。一個變量名(一些情況下,我們沒有外):Computing_Student會是一個更好的例子和條件,比方說,準備期末考試你分數。即使您正在爲具有1K內存的目標編譯Ada,較長的名稱也不會影響對象大小。

CSMapComputing_Student_Map可以代表一個測試中的分數,而A可以代表每個學期的考試分數。相當多的學生如何得分-2並不是我關心的問題!

該程序只是一對嵌套循環打印所有值:A(I)選擇一個CSMap,並且(P)訪問它的第P個成員。

這是否明確了事情?

編輯:也注意到不良做法,導致潛在的錯誤:

for I in 1..3 loop 

目的是可能到指數在所有的值數組A.如果是這樣的話,這將是更好的保證通過寫

for I in A'range loop 

那麼當有人更改陣列A的大小,循環仍然按預期工作...