with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
procedure array3 is
type int_array_t is array(Natural range <>) of Natural;
procedure fill(ia: out int_array_t) is
begin
for i in ia'range loop
get(ia(i));
end loop;
end fill;
function total(ia: in int_array_t) return Natural is
ans: Natural := 0;
begin
for i in ia'range loop
ans := ans + ia(i);
end loop;
return ans;
end total;
some_ints: int_array_t(1 .. 3);
more_ints: int_array_t(1 .. 8);
begin
fill(some_ints);
fill(more_ints);
put(total(some_ints)'img);
put(total(more_ints)'img);
end array3;