(共17张PPT)
算法初步
§1.2.3 算法基本语句
--循环语句
温故而知新
1、顺序结构常用的程序语言和格式
2、条件结构常用的程序语言和格式
输入语句 INPUT “提示文字”;变量列表
输出语句 PRINT “提示文字”;变量列表
赋值语句 变量=表达式
(1)
IF 条件成立 THEN
语句1
ELSE
语句2
END IF
(2)
IF 条件成立 THEN
语句
END IF
成立
A
P
不成立
A
P
成立
不成立
While(当型)循环
Until(直到型)循环
两种循环结构有什么差别?
先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。
先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。
先执行 后判断
先判断 后执行
循环结构
A
P
成立
不成立
While(当型)循环
算法中的循环结构是由循环语句来实现的。
成立
A
P
不成立
Until(直到型)循环
两种循环语句:
WHILE 条件
循环体
WEND
(1)WHILE语句的一般格式:
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.
也叫“前测试型”循环
循环体
满足条件?
是
否
While(当型)循环
练习、根据1.1.2例6中的程序框图,编写计算
机程序来计算1+2+…+100的值
i<=100
i=1
开始
输出sum
结束
否
是
sum=0
i=i+1
sum=sum+i
i=1
sum=0
WHILE i<=100
sum=sum+i
i=i+1
WEND
PRINT sum
END
程序:
Until(直到型)循环
DO
循环体
LOOP UNTIL 条件
(2)UNTIL语句的一般格式:
也叫“后测试型”循环
循环体
满足条件?
否
是
思考1:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.
思考1:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.
i=1
sum=0
DO
sum=sum+i
i=i+1
LOOP UNTIL i>100
PRINT sum
END
i=1
开始
结束
sum=0
输出sum
i=i+1
sum=sum+i
i>100
否
是
程序框图:
程序:
思考2:图1.1-2,用按照算法执行的顺序,把程序
框图中的内容转化为相应的程序语句。
开始
输入n
flag=1
n>2
d=2
是
d整除n
flag=0
d<=n-1且
flag=1
flag=1
n是质数
结束
是
d=d+1
否
否
n不是质数
否
是
否
是
(1) n=5
开始
Flag=1
n>2
d=2
输入n
d<=n-1且
flag=1
N不是质数
n是质数
d整除n
Flag=0
Flag=1
结束
d=d+1
是
是
是
否
否
是
否
否
(1)
(2)
(2)n=4
8
否
INPUT “n=”;n
i=2
DO
IF n MOD i=0 THEN
PRINT n; “不是质数”
ELSE
i=i+1
END IF
LOOP UNTIL i>(n-1)
PRINT n;"是质数."
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 > = n
END
结束
i=0
开始
i = i+1 : t=i^2
i>=n
否
是
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
3.编写程序,计算函数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
4.编写一个程序,输入正整数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
小 结
WHILE 条件
循环体
WEND
DO
循环体
LOOP UNTIL 条件
两种循环语句:
循环体
满足条件?
是
否
(1) While(当型)循环
(2)Until(直到型)循环
循环体
满足条件?
否
是