with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
procedure table3a is
-- Outputs the header for the table
-- Outputs header for first column plus one column for each integer
-- in the range sPow .. fPow
-- Precondition: sPow, fPow in 1 .. 99
procedure putHeader(sPow, fPow: Integer) is
begin
-- First column
put(" I");
-- Columns for powers
for i in sPow .. fPow loop
if i in 1 .. 9 then
put(" I**");
else
put(" I**");
end if;
put(i, 1);
end loop;
new_line;
-- Add one to fPow to account for column for I
for i in sPow .. fPow + 1 loop
put("-----------");
end loop;
new_line;
end putHeader;
-- Outputs all of the rows of the table
-- Outputs one row for each integer in range sInt .. fInt
-- Outputs one column for each integer in range sPow .. fPow
procedure putRows(sInt, fInt, sPow, fPow: Integer) is
tempInt: Integer; -- Local variable for putRows
begin
for i in sInt .. fInt loop
put(i);
for j in sPow .. fPow loop
tempInt := i ** j;
put(tempInt);
end loop;
new_line;
end loop;
end putRows;
-- Variables for main routine
startI: Integer := 2;
finishI: Integer := 11;
startPower: Integer := 2;
finishPower: Integer := 4;
begin
putHeader(startPower, finishPower);
putRows(startI, finishI, startPower, finishPower);
end table3a;