Solved
about my source code?
Posted on 1998-10-28
Can you make this source code into 5 procedures and 1 function into an arrangement order?
this source code is to arrange an input into an ascending order or descending order.
uses crt;
var n1,n2,n3,n4,n5 : real;
ans:string;
opt:char;
procedure ascending(var a1,a2,a3,a4,a5 :real); forward;
procedure descending(var d1,d2,d3,d4,d5 : real); forward;
Procedure Choice;
begin
write(opt);
writeln;
case opt of
'1' : begin
ascending(n1,n2,n3,n4,n5);
writeln(n1:8:2,n2:8:2,n3:8:2,n4:8:2,n5:8:2);
end;
'2' : begin
descending(n1,n2,n3,n4,n5);
writeln(n1:8:2,n2:8:2,n3:8:2,n4:8:2,n5:8:2);
end;
end;
end;
function UserAnswer:boolean;
begin
readln(ans);
if (pos('N',ans)=0) and (pos('n',ans)=0) then UserAnswer:=true
else UserAnswer:=false;
end;
procedure order(asc:boolean; var x,y:real);
var temp: real;
begin
if asc then begin
if x>y then begin
temp:=x;
x:=y;
y:=temp;
end
end
else if not asc then begin
if x<y then begin
temp:=y;
y:=x;
x:=temp;
end;
end;
end;
procedure input(var n1,n2,n3,n4,n5:real);
begin
write('Enter 1st number : ');readln(n1);
write('Enter 2nd number : ');readln(n2);
write('Enter 3rd number : ');readln(n3);
write('Enter 4th number : ');readln(n4);
write('Enter 5th number : ');readln(n5);
end;
procedure ascending(var a1,a2,a3,a4,a5 :real);
begin
order(true,n1,n2);
order(true,n1,n3);
order(true,n1,n4);
order(true,n1,n5);
order(true,n2,n3);
order(true,n2,n4);
order(true,n2,n5);
order(true,n3,n4);
order(true,n3,n5);
order(true,n4,n5);
end;
Procedure descending(var d1,d2,d3,d4,d5:real);
begin
order(false,n1,n2);
order(false,n1,n3);
order(false,n1,n4);
order(false,n1,n5);
order(false,n2,n3);
order(false,n2,n4);
order(false,n2,n5);
order(false,n3,n4);
order(false,n3,n5);
order(false,n4,n5);
end;
Function GetUserChoice:char;
begin
writeln('Press `1` for ascending order or `2` for decending order');
write('What order would you like the numbers to appear ? ');
GetUserChoice:=readkey;
end;
begin
repeat
clrscr;
input(n1,n2,n3,n4,n5);
repeat
opt:=GetUserChoice;
choice;
until (opt in ['1','2']);
write('Would you like to view the Descending order ? ');
if UserAnswer then begin
descending(n1,n2,n3,n4,n5);
writeln(n1:8:2,n2:8:2,n3:8:2,n4:8:2,n5:8:2);
end;
writeln;
write('Continue ? ');
until not UserAnswer;
End.