例:输入三个数,并按照从小到大的顺序输出。
分析:将输入的三个数放置在变量a,b,c中,它们被定义为real类型。
一级算法:
1、输入三个数
2、将这三个数按从小到大的顺序排序
3、输出排序后的三个数
二级求精:三个数排序需经过三次比较,若数字次序不对,应交换它们。
2-1、if a>b then 交换a与b
2-2、if b>c then 交换b与c
2-3、if a>b then 交换a与b
通过2-1步,将使a中的数小于b中的数
通过2-2步,将使b中的数小于c中的数,因而现在c中放的是最大的数
由于通过2-2步的交换,a中的数可能不再b中的数,因而应执行2-3步,以保证a小于b
源程序:
为了交换两个数,需引入中间变量temp
program bijiao;
var
a,b,c,temp:real;
begin
writeln('Please input three number:');
readln(a,b,c);
if a>b then
begin
temp:=a;
a:=b;
b:=temp;
end;
if b>c then
begin
temp:=b;
b:=c;
c:=temp;
end;
if a>b then
begin
temp:=a;
a:=b;
b:=temp;
end;
writeln(a,b,c);
readln;
end.