Seems theres a Val feature that basically converts strings into integers, Str does the opposite. Val in this example also has the third parameter as the error display.
program TriangleWait (input, output);
var
b, h: integer; {Base & Height}
A: real; {Area}
h_string : string; {Input string for Height}
Err : integer; {Error flag set by Val()}
begin
{------------Introduction & Setup------------------}
writeln('This program calculates and prints the area of a triangle');
writeln('after you enter their dimensions.');
writeln('When asked to, type in a dimension and hit the ENTER key.');
writeln;
{-------------------Inputting Data------------------}
{------User-Friendly------}
Repeat
write('What is the triangle''s base? ');
readln(b);
if b <= 0 then
writeln('The base needs to be GREATER than zero.')
Until b > 0;
{------VERY User-Friendly------}
Repeat
write('What is the triangle''s height? ');
readln(h_string);
val(h_string, h, Err);
if Err > 0 then
writeln('An illegal character was found at character #', Err, '.')
else if h <= 0 then
writeln('The height needs to be GREATER than zero.')
Until (h > 0) AND (Err = 0);
{-------------------Calculation------------------}
A := b * h / 2;
{-------------------Printing Results------------------}
writeln('The area of a triangle with a base of ', b:0, ' units and');
writeln('a height of ', h:0, ' units is ', A:0:1, ' square units.');
end. Last edited by adotl : Apr 24th, 2007 at 6:35 pm.