The Ada Program: dim2.adb

  1 -- dim2.adb:  examples of two dimensional arrays
  2 
  3 with Ada.Float_Text_IO, Ada.Text_IO;
  4 use Ada;
  5 
  6 procedure Dim2 is
  7 
  8    Number_Of_Rows : constant Integer := 4;
  9    Number_Of_Cols : constant Integer := 7;
 10 
 11    subtype Row_Range is Integer range 1..Number_Of_Rows;
 12    subtype Col_Range is Integer range 1..Number_Of_Cols;
 13 
 14    type Table_Type is array (Row_Range, Col_Range) of Float;
 15 
 16    Table : Table_Type;
 17    Total : Float;
 18 
 19 begin
 20    -- Sum row number 3 of "Table"
 21    Total := 0.0;
 22    for Col in Table'Range(2) loop
 23       Total := Total + Table (3, Col);
 24    end loop;
 25    Float_Text_IO.Put (Total);
 26    Text_IO.New_Line;
 27 
 28    -- Sum all components of "Table" (row major)
 29    Total := 0.0;
 30    for Row in Table'Range(1) loop
 31       for Col in Table'Range(2) loop
 32          Total := Total + Table (Row, Col);
 33       end loop;
 34    end loop;
 35    Float_Text_IO.Put (Total);
 36    Text_IO.New_Line;
 37 
 38    -- Sum all components of "Table" (column major)
 39    Total := 0.0;
 40    for Col in Table'Range(2) loop
 41       for Row in Table'Range(1) loop
 42          Total := Total + Table (Row, Col);
 43       end loop;
 44    end loop;
 45    Float_Text_IO.Put (Total);
 46    Text_IO.New_Line;
 47 end Dim2;