with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
procedure table3b is
-- 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;
procedure putRows(sInt, fInt, sPow, fPow: Integer) is
tempInt: Integer;
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;
startI, finishI: Integer;
startPower, finishPower: Integer;
begin
-- These lines prompt and do input
-- Rest of program is unchanged
put("Enter starting integer: ");
get(startI); -- Input value stored in startI!
put_line("Starting power is " & integer'image(startI));
put("Enter ending integer: ");
get(finishI); -- Input value stored in finishI!
put("Enter starting power: ");
get(startPower); -- Input value stored in startPower!
put("Enter ending power: ");
get(finishPower); -- Input value stored in fiishPower!
new_line;
putHeader(startPower, finishPower);
putRows(startI, finishI, startPower, finishPower);
end table3b;