The Ada Program: dim3.adb

  1 -- dim3.adb:  average all the elements of a 3 dimensional array
  2 
  3 with Ada.Text_IO, Ada.Float_Text_IO;
  4 use Ada;
  5 
  6 procedure Dim3 is
  7 
  8    type Float_Array is array (Integer range <>,
  9       Integer range <>, Integer range <>) of Float;
 10 
 11    function Average (Value: in Float_Array) return Float is
 12       Sum : Float := 0.0;
 13       N   : constant Float := Float (
 14          Value'Length(1)*Value'Length(2)*Value'Length(3));
 15    begin
 16       for I in Value'Range(1) loop
 17          for J in Value'Range(2) loop
 18             for K in Value'Range(3) loop
 19                Sum := Sum + Value (I,J,K);
 20             end loop;
 21          end loop;
 22       end loop;
 23       return (Sum / N);
 24    end Average;
 25 
 26    A : Float_Array := (
 27       ((1.2, 2.3), (3.4, 4.5), (5.6, 7.8)),
 28       ((1.2, 2.3), (3.4, 4.5), (5.6, 7.8))
 29    );
 30 
 31 begin
 32 
 33    Float_Text_IO.Put (Average (A));
 34    Text_IO.New_Line;
 35 
 36 end Dim3;