-- Chapter 19 - Programming exercise 2 with Ada.Text_IO, Ada.Integer_Text_IO; use Ada.Text_IO, Ada.Integer_Text_IO; procedure CH19_2 is type ARY_INT is array(1..6) of INTEGER; Crowd, Group1, Group2 : ARY_INT; function "+"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) + In_Array2(Index); end loop; return Temp_Array; end "+"; function "-"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) - In_Array2(Index); end loop; return Temp_Array; end "-"; function "*"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) * In_Array2(Index); end loop; return Temp_Array; end "*"; function "/"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) / In_Array2(Index); end loop; return Temp_Array; end "/"; function "mod"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) mod In_Array2(Index); end loop; return Temp_Array; end "mod"; function "rem"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is Temp_Array : ARY_INT; begin for Index in ARY_INT'RANGE loop Temp_Array(Index) := In_Array1(Index) rem In_Array2(Index); end loop; return Temp_Array; end "rem"; begin Group1 := (12, 17, -1, 3, -100, 5); Group2 := (13, -2, 22, 1, 124, -12); Crowd := Group1 + Group2; for Index in ARY_INT'RANGE loop Put(Group1(Index), 6); Put(Group2(Index), 6); Put(Crowd(Index), 6); New_Line; end loop; Crowd := Group1 - Group2; Crowd := Group1 * Group2; Crowd := Group1 / Group2; Crowd := Group1 mod Group2; Crowd := Group1 rem Group2; end CH19_2; -- Result of execution -- 12 13 25 -- 17 -2 15 -- -1 22 21 -- 3 1 4 -- -100 124 24 -- 5 -12 -7 -- Note; The fifth value of Group2 was changed to prevent a -- numeric_error on a small machine.