资源描述
“循环(结构)语句”学习要点指津
一 学问点
1. WHILE语句
WHILE语句的一般格式是 对应的程序框图是
满足条件?
循环体
否?
是?
WHILE 条件
循环体
WEND
说明:计算机执行此程序时,遇到WHILE语句,先推断条件是否成立,假如成立,则执行WHILE和WEND之间的循环体,然后再推断上述条件,再执行循环体,这个过程反复执行,直到某一次不符合条件为止,这时不再执行循环体,将跳到WEND语句后,执行WEND后面的语句。
2、UNTIL语句
UNTIL语句的一般格式是 对应的程序框图是
满足条件?
循环体
是
否
DO
循环体
LOOP UNTIL 条件
说明:计算机执行UNTIL语句时,先执行DO和LOOP UNTIL之间的循环体,然后推断条件是否成立,假如不成立,执行循环体。这个过程反复执行,直到某一次符合条件为止,这时不再执行循环体,跳出循环体执行LOOP UNTIL后面的语句。
3、当型循环与直到型循环的区分
(1)当型循环先推断后执行,直到型循环先执行后推断;
(2)当型循环用WHILE语句,直到型循环用UNTIL语句;
(3)对同一算法来说,当型循环和直到型循环的条件互为反条件。
二 典型例题分析
例1. 运用当型和直到型两种循环结构画出求值的程序框图.
算法分析:欲求只需一个累加变量和一个计数变量,将累加变量的初始值设为0,计数变量的值可以从1—100.
程序框图:
输出sum
结束
开头
I=1
Sum=0
I=I+1
I>100?
输出sum
结束
开头
I=1
Sum=0
I=I+1
I<=100?
是 否
否
是
(当型循环) (直到型循环)
例2.设计一个计算1×3×5×7×…×99的算法,用两种循环语句编写算法程序。
解:算法如下: 程序(WHILE语句)如下:
s=1
i=3
WHILE i<=99
s=s*I
i=i+2
WEND
PRINT s
END
第一步:s=1;
其次步:i=3;
第三步:s=s×i;
第四步:i=i+2;
第五步:假如i≤99,那么转到第三步;
第六步:输出s;
用UNTIL语句表示这一程序
s=1
i=3
DO
s=s*I
i=i+2
LOOP UNTIL i>99
PRINT s
END
例3.设计一个求25个数的算术平均数的算法,用两种循环语句编写其程序
分析:可用一个循环依次输入25个数,并将它们的和存在一个变量S中,最终用S除以25即可得到这25个数的平均数。
程序如下:用(UNTIL)语句表示这一程序 用(WHILE)语句表示这一程序
S=0
i=1
DO
INPUT x
S=S+x
i=i+1
LOOP UNTIL i>25
a=S/25
PRINT a
END
S=0
i=1
WHILE I<=25
INPUT x
S=S+x
i=i+1
a=S/25
WEND
PRINT a
END
例4.“百钱买百鸡”问题:今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.凡百钱买百只,问鸡翁、母、雏各几何?请设计解决该问题的算法,给出求解“百钱买百鸡”问题的程序.
分析:设x,y,z分别表示鸡翁、鸡母、鸡雏的只数.若100元钱买鸡翁,则最多可买(100÷5=20只),所以0≤x≤20,同理0≤y≤33.当鸡翁和鸡母的只数确定后,鸡雏的只数z=100-x-y也随之确定了.
参考程序:
x=0
i=0
while x<=20
y=0
while y<=33
z=100-x-y
if z>=0 then
if 5*x+3*y+z/3=100 then i=i+1
Print “有一组解为:”;x;y;z
end if
end if
y=y+1
wend
x=x+1
wend
print“共有”;i;“组解.”
end
由以上例子我们可以看出,在用WHILE语句和UNTIL语句编写程序解决问题时,确定要留意它们的格式及条件的表述方法.WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体.
展开阅读全文