内容正文:
第一章 算法初步
1.2.3 循环语句
算法中的循环结构是由循环语句来实现的 .
循环结构有两种-----当型与直到型.
当型循环结构(当条件满足时反复执行循环体)
直到型循环结构(反复执行循环体直到条件满足)
对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构.
满足条件?
循环体
是
否
循环体
是
否
满足条件?
(1)UNTIL语句的一般格式是:
DO
循环体
LOOP UNTIL 条件
DO——做什么
LOOP UNTIL——绕环回线走,直到达到某种
条件为止
思考:参照其直到型循环结构对应的程序框图,说说
计算机是按怎样的顺序执行UNTIL语句的?
即WHILE语句和UNTIL语句。
循环体
是
否
满足条件?
直到型循环结构
(1)UNTIL语句的一般格式是:
DO
循环体
LOOP UNTIL 条件
从UNTIL型循环结构分析,计算机执行该语句时,先
执行一次循环体,然后进行条件的判断,如果条件不
满足,继续返回执行循环体,然后再进行条件的判断,
这个过程反复进行,直到某一次条件满足时,不再执
行循环体,跳到UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.
循环体
是
否
满足条件?
直到型循环结构
(2)WHILE语句的一般格式是:
WHILE 条件
循环体
WEND
其中循环体是由计算机反复执行的一组语句构成的.WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
WHILE——当……
时候
WEND——朝……方向
行走
(2)WHILE语句的一般格式是
WHILE 条件
循环体
WEND
当计算机遇到WHILE语句时,
先判断条件的真假,如果条件
符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.
满足条件?
循环体
是
否
当型循环结构
提问:通过对照,大家觉得WHILE型语句与UNTIL型
语句之间有什么区别呢?
区别:在WHILE语句中,是当条件满足时执行循环
体,而在UNTIL语句中,是当条件不满足时执行循环
体。
WHILE语句的一般格式
WHILE 条件
循环体
WEND
UNTIL语句的一般格式
DO
循环体
LOOP UNTIL 条件
例:1.编写程序,函数f(x)=x2-3x+5,连续输入自变量的11个取值,输出相应的函数值.
n=1
WHILE n<=11
INPUT x
y=x^2 -3*x+5
PRINT y
n=n+1
WEND
END
n=1
DO
INPUT x
y=x^2 -3*x+5
PRINT y
n=n+1
LOOP UNTIL n>11
END
n=1
WHILE n<=11
INPUT x
y=x^2 -3*x+5
PRINT y
n=n+1
WEND
END
n=1
DO
INPUT x
y=x^2 -3*x+5
PRINT y
n=n+1
LOOP UNTIL n>11
END
2.设计一个算法框图:逐个输出12,22,
32,……,n2,并写出相应的QBASIC程序.
INPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = n
END
结束
i=0
开始
i = i+1 , t =i^2
i>=n?
否
是
输出 t
输入 n
3、设计一个算法框图:求满足1+2 + 3 + … + n>10 000的最小正整数n,并写出相应的QBASIC程序.
i = 0
sum = 1
DO
i = i + 1
sum = sum + i
LOOP UNTIL sum>1 0000
PRINT i
END
结束
输出i
i=0,Sum=1
开始
i = i + 1
Sum=Sum+i
Sum>10 000?
否
是
4.编写计算机程序输出1~100之间(含1和100)
的所有偶数.
思考:能否用UNTIL型来编写程序?
WHILE型程序:
UNTIL型程序:
i=1
WHILE i<=100
i=i+1
If i mod 2=0 THEN
WEND
PRINT i
END
END IF
i