PROGRAM SIXTEEN
Write a program, using procedures which accept value parameters,
to implement the calculator program
as derived in program fifteen. Each procedure will print out its
own result. No global variables must be used.
program PROG16 (input,output);
procedure MULTIPLY (var number1, number2 : real );
var result : real;
begin
result := number1 * number2;
writeln(number1:4:2,' * ',number2:4:2,' is ',result:5:2)
end;
procedure DIVIDE (var number1, number2 : real );
var result : real;
begin
result := number1 / number2;
writeln(number1:4:2,' / ',number2:4:2,' is ',result:5:2)
end;
procedure ADD (var number1, number2 : real );
var result : real;
begin
result := number1 + number2;
writeln(number1:4:2,' + ',number2:4:2,' is ',result:5:2)
end;
procedure SUBTRACT (var number1, number2 : real );
var result : real;
begin
result := number1 - number2;
writeln(number1:4:2,' - ',number2:4:2,' is ',result:5:2)
end;
var invalid_operator : boolean;
operator : char;
number1, number2, result : real;
begin
invalid_operator := FALSE;
writeln('Enter two numbers and an operator in the format');
writeln(' number1 operator number2');
readln(number1); readln(operator); readln(number2);
case operator of
'*': MULTIPLY ( number1, number2 );
'/': DIVIDE ( number1, number2 );
'+': ADD ( number1, number2 );
'-': SUBTRACT ( number1, number2 )
otherwise invalid_operator := TRUE
end;
if invalid_operator then
writeln('Invalid operator')
end.