§1.2.3 循环语句
第一章 算法初步
温故而知新
1、顺序结构常用的程序语言和格式
2、条件结构常用的程序语言和格式
输入语句 INPUT “提示文字”;变量列表
输出语句 PRINT “提示文字”;表达式
赋值语句 变量=表达式
(1)
IF 条件成立 THEN
语句1
ELSE
语句2
END IF
(2)
IF 条件成立 THEN
语句
END IF
3、循环结构的程序框图
条件成立?
循环体
否
是
条件成立?
循环体
否
是
思考:如何用程序语句表示呢?
WHILE 条件
循环体
WEND
DO
循环体
LOOP UNTIL 条件
两种循环语句:
WHILE 条件
循环体
WEND
(1)WHILE语句的一般格式:
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.
也叫“前测试型”循环
循环体
满足条件?
是
否
While(当型)循环
Until(直到型)循环
DO
循环体
LOOP UNTIL 条件
(2)UNTIL语句的一般格式:
也叫“后测试型”循环
循环体
满足条件?
是
否
思考1:参照直到型循环结构,说说计算机是按怎样的顺序执行UNTIL语句的?
例1 根据下面的程序框图写出相应的QBASIC程序
结束
i = i + 1
Sum=Sum + i
i<100?
输出Sum
否
是
i=0,Sum=0
开始
i = 0
Sum = 0
WHILE i<100
i = i + 1
Sum =Sum + i
WEND
PRINT Sum
END
结束
输出Sum
i=0,Sum=1
开始
i = i + 1
Sum=Sum*i
i>=100?
否
是
例2 根据下面的程序框图写出相应的QBASIC程序
i = 0
Sum = 0
DO
i = i + 1
Sum = Sum + i
LOOP UNTIL i>=100
PRINT Sum
END
例3 根据下面的程序语句画出对应的程序框图,并分析程序的结果.
s=0
i=2
WHILE i<=18
s=s+i
i=i+3
WEND
PRINT “s=”;s
END
(1)
(2)
i=1
Sum=0
m=1
DO
m=m*i
Sum=Sum+m
i=i+1
LOOP UNTIL i>10
PRINT Sum
END
练习 P24
1.根据你画出的用二分法求方程x2-2=0的近似根的程序框图,
写出相应的程序语句.
2.编写程序,计算函数f(x)=x2-3x+5当x=1,2, 3,…,20时
的函数值.
3.编写一个程序,输入正整数n,计算它的阶乘n!
(n!=n*(n-1)*…*3*2*1)
练习 P24
1.根据你画出的用二分
法求方程x2-2=0的近似
根的程序框图,写出
相应的程序语句.
开始
x1=1,x2=2
c=0.005
输出x
f(x1)f(x)<0?
否
是
x1=x
x2=x
|x1-x2|是
否
结束
f(x)=0?
否
是
????=????1+????12
?
f(????1)=????12-2
?
f(x)=????2-2
?
练习 P24
x1=1
x2=2
c=0.005
DO
x=(x1+x2)/2
f(x1)=x1^2-2
f(x)=x^2-2
IF f(x)=0 THEN
PRINT "方程根为:";x
ELSE
IF f(x1)*f(x)<0 THEN
x2=x
ELSE
x1=x
END IF
END IF
LOOP UNTIL ABS(x1-x2)<=c
PRINT "方程的近似根为:";x
END
练习 P24
2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,3,…,20时的函数值.
x=1
WHILE x<=20
y=x^2 -3*x+5
PRINT "x=";x
PRINT "y=";y
x=x+1
WEND
END
练习 P24
3.编写一个程序,输入正整数n,计算它的阶乘n!(n!=n*(n-1)*…*3*2*1)
t=1
i=1
INPUT "请输入n的值:";n
DO
t=t*i
i=i+1
LOOP UNTIL i>n
PRINT "这个数的阶乘为:";t
END
练习巩固
1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序.
INPUT n
i = 0
WHILE i < n
i = i + 1
t = i ^ 2
PRINT t
WEND
END
INPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = 100
END
结束
i=0
开始
i = i+1 : t=i^2
i>=100?
否
是
PRINT t
INPUT n
2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序.
结束
输出i
i=0,Sum=1
开始
i = i + 1
Sum=Sum*i
Sum>10000?
否
是
i = 0
Sum = 0
DO
i = i + 1
Sum = Sum + i
LOOP UNTIL Sum>10000
PRINT i
END
课堂小结
1、循环结构的程序表示
2、循环语句的一般格式
3、程序框图和程序语言的相互转换
循环语句
WHILE 条件成立
循环体
WEND
DO
循环体
LOOP UNTIL 条件成立
小 结
WHILE 条件
循环体
WEND
DO
循环体
LOOP UNTIL 条件
两种循环语句:
循环体
满足条件?
是
否
(1) While(当型)循环
(2)Until(直到型)循环
循环体
满足条件?
是
否
课外活动
请设计一个算法,逐个输入自己班全部同学某门课程的成绩,输完后计算总分,平均分,统计及格人数(率),优秀人数(率)等,看看谁设计的程序的实用性高,