PROGRAM 17
Program English_metric_converter;
{Anthony F. Ortiz, Assignment 6b, 7/5/94}
{This program is a menu driven program that allows the user to
choose from many differnt conversion options.}
Var
done : boolean;
ans : char;
Procedure pause;
Begin
writeln;
writeln ('Press < Enter > key to continue ...' );
readln;
End;
Procedure in_cm;
Var
inches,cm : real;
Begin
writeln;
write ('Enter the number of inches: ');
readln (inches);
cm := inches * 2.54;
writeln;
writeln (inches:8:2, ' inches = ', cm:8:2, ' centimeters.');
pause
End;
Procedure cm_in;
Var
feet : integer;
cm,inches : real;
Begin
writeln;
write ('Enter the number of centimeters: ');
readln (cm);
inches := 1 / 2.54 * cm;
writeln;
if inches > 12 then
begin
feet := trunc (inches / 12);
inches := inches - 12 * feet;
writeln (cm:8:2, ' centimeters = ', feet, ' feet',inches:8:2, ' inches.')
end
else
writeln (cm:8:2, ' centimeters = ', inches:8:2, ' inches.');
pause
End;
Procedure ft_m;
Var
ft,m : real;
Begin
writeln;
write ('Enter the number of feet: ');
readln (ft);
m := 1 / 3.28 * ft;
writeln;
writeln (ft:8:2, ' feet = ', m:8:2, ' meters.');
pause;
End;
Procedure m_ft;
Var
ft, m : real;
Begin
writeln;
write ('Enter the number of meters: ');
readln (m);
ft := 3.28 * m;
writeln;
writeln (m:8:2, ' meters = ', ft:8:2, ' feet.');
pause;
End;
Procedure menu (Var ans : char);
Begin
writeln;
writeln ('Menu');
writeln;
writeln ('*-MENU-MENU-MENU-MENU-MENU-MENU-MENU-*');
writeln ('[ ]');
writeln ('[ A) Convert inches to centimeters. ]');
writeln ('[ B) Convert feet to meters. ]');
writeln ('[ C) Convert centimeters to inches. ]');
writeln ('[ D) Convert meters to feet. ]');
writeln ('[ Q) Quit. ]');
writeln ('[ ]');
writeln ('*-MENU-MENU-MENU-MENU-MENU-MENU-MENU-*');
repeat
writeln;
write ('Please enter your choice (A,B,C,D,Q): ');
readln (ans);
if NOT (upcase(ans) IN ['A','B','C','D','Q']) then
begin
writeln;
writeln ('Please enter ''A'',''B'',''C'',''D'' or ''Q'' only !');
pause;
end
until upcase (ans) IN ['A','B','C','D','Q'];
End;
Begin
done := false;
repeat
menu (ans);
case upcase (ans) of
'A' : in_cm;
'B' : ft_m;
'C' : cm_in;
'D' : m_ft
else
begin
done := upcase(ans) = 'Q';
writeln;
writeln ('Thank you, Bye Bye !');
end;
end;
until done;
End.
{ OUTFILE: PROG17.OUT }
Menu
*-MENU-MENU-MENU-MENU-MENU-MENU-MENU-*
[ ]
[ A) Convert inches to centimeters. ]
[ B) Convert feet to meters. ]
[ C) Convert centimeters to inches. ]
[ D) Convert meters to feet. ]
[ Q) Quit. ]
[ ]
*-MENU-MENU-MENU-MENU-MENU-MENU-MENU-*
Please enter your choice (A,B,C,D,Q): a
Enter the number of inches: 10
10.00 inches = 25.40 centimeters.
Press < Enter > key to continue ...
BACK TO COMP151 PAGE.