第4节
循环结构程序(while,Repeat-Until语句)
程序No41:完善AX2+BX+C=0的程序,当输入的A、B、C无解时,输出提示信息“no
answer”:
Program QJ;
Var a,b,c,d,x1,x2:real;
Begin
Readln (a,b,c);
d:=sqr(b)-4*a*c;
if d<0 then
writeln (‘no answer.’)
else
begin
x1:= (-b+sqrt(d))/(2*a);
x2:= (-b-sqrt(d))/(2*a);
writeln(‘x1=’,x1:6:2);
writeln(‘x2=’,x2:6:2);
end;
end.
知识点解析:在“IF
THEN
语句1
ELSE
语句2;”中,如果“语句1”或“语句2”中不只一条语句,则需用“begin end”加以标记,组成“复合语句”,“begin end”相当于括号作用。
程序No42:完善猜数游戏:
由计算机随机生成一个0-10之间的数,由你来猜,猜对了输出“very
good.”,猜错了继续猜,猜对为止,最后输出要猜的数,并将猜的次数及命中率输出。
程序:
program cs;
var d,x,i:real;
begin
i:=0;
randomize;
d:=random(10);
writeln ('what''s your choose?');
readln(x);
i:=i+1;
while x<>d do
begin
writeln ('what''s your choose again?');
readln(x);
i:=i+1;
end;
writeln ('The numble is:',d:6:0);
writeln ('you
guess:',i:2:0,' ','accwracy:',((10-i)/10*100):3:0,'%');end.
一、知识点解析:
1、While语句
格式:WHILE 条件 DO 语句
执行过程:先算出条件的值,若条件为“真”,则执行DO后的语句,而后重新判断条件是否为“真”,若为“真”,继续执行DO后的语句然后判断条件,直至条件为“假”;若为“假”,
while循环结束,执行while语句后面的下一条语句。
注:可能重复执行的语句叫“循环体”,如while中的“语句”。
2、i:=i+1用来记数,在C语言中可用inc(i)语句代替,INC(i,[X]):变量递增,i为有序变量,X缺省时为1。DEC(i,[X]):变量递减,i为有序变量,X缺省时为1。
3、Repeat-Until语句
格式:REPEAT
语句1
语句2
……
语句n
UNTIL 条件
执行过程:遇到REPEAT语句后,即进入循环体,顺序执行循环体内的语句;遇到UNTIL语句后,算出“条件”的值。若值为假,则重新执行循环体;若为“真”,循环结束,执行UNTIL后面的下一条语句。
讨论:完善猜数游戏:
将上述程序修改,完成如下要求:
①每猜错一次,提示“TOO BIG”或“TOO SMALL”。
②如果猜了3次还未猜中,则提示“MY GOD”,4次未中则提示其它相关内容
③如果每次猜的数都不同,如何修改程序。10次未猜中则退出程序。