with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
-- Input and print in reverse an unknown number, up to 100
-- Indices can start at any number
procedure printn is
firstIndex: constant Integer := -10;
maxArraySize: constant Natural := 100;
a: array (firstIndex .. firstIndex + maxArraySize) of Integer;
numEntered: natural := 0; -- How many were entered
num: integer;
begin
while not end_of_file and numEntered < maxArraySize loop
get(num);
numEntered := numEntered + 1;
a(firstIndex + numEntered) := num;
end loop;
-- Another way to access indices
-- for i in reverse a'first .. a'first + numEntered - 1 loop
for i in reverse firstIndex .. firstIndex + numEntered - 1 loop
put(a(i));
new_line;
end loop;
end printn;