课件27张PPT。1.2.3《基本算法语句-循环语句》教学目标 1.正确理解循环语句的概念;
2.能应用循环语句编写程序。
教学重点 :循环语句的步骤、结构及功能 。
教学难点 :会编写程序中的循环语句 温故而知新1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句 INPUT “提示文字”;变量列表输出语句 PRINT “提示文字”;变量列表赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF例5 编写程序,输入一元二次方程算法描述:S1:输入a,b,cS2:计算判别式△S3:如果△<0有两不同实根, △=0有两个相同实根, △<0否则没实数根。根据情况输出结果。开 始输入a,b,cΔ=b2-4acp= -b/2aq=SQR(ABS (Δ))/(2a)x1=p+q
x2=p-qΔ≥0?x1=x2?原方程有两个不等
的实数根x1,x2原方程有两个相等
的实数根x1,x2原方程无实数根结 束是否是否的系数,输出它的实数根。QBASIC程序:INPUT “请输入一元二次方程的系数a,b,c=:”;a,b,cd = b * b - 4 * a * cp = -b / (2 * a)q = SQR(ABS(d)) / (2 * a)IF d >= 0 THENx1 = p + qx2 = p - qIF x1 = x2 THENPRINT “只有一个实根:”;x1=x1ELSEPRINT “有两个实根:”;“x1=”;x1,”x2=”;x2END IFELSEPRINT “没有实根”END IFEND例6 编写程序,使得任意输入3个整数按大到小的顺序输出。算法分析:算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。第一步 输入3个整数a、b、c第二步 将a与b比较,并把小者赋给b,大的赋给a;第三步 将a与c比较,并把小者赋给c,大的赋给a第四步 将b与c比较,并把小者赋给c,大的赋给b第五步 按顺序输出a,b,cINPUT “a,b,c=”;a,b,c
IF b > a THEN
t = a
a = b
b = t
END IF
IF c > a THEN
t = a
a = c
c = t
END IF
IF c > b THEN
t = b
b = c
c = t
END IF
PRINT a,b,c
END相应的QBASIC程序:开始t=a,a=b,b=tt=a,a=c,c=tt=b,b=c,c=t输入a,b,c输入a,b,cb>a?c>a?c>b?结束是是否否是否对应的流程图练习巩固开始输入a,b,ca+b>c,a+c > b,
b+c > a是否同时成立?存在这样的
三角形不存在这样
的三角形结束否是(1) 该程序框图所表示的算法是作用是什么?并根据程序框图写出相应的程序。1.2.3 循环语句循环结构的定义: 在一些算法中,从某处开始,按照一定条件,反复执行
某一处理步骤的情况,这就是循环结构。
反复执行的处理步骤称为循环体。两种循环结构有什么差别?While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。先执行 后判断先判断 后执行循环结构算法中的循环结构是由循环语句来实现的。两种循环语句:WHILE 条件
循环体
WEND(1)WHILE语句的一般格式: 当计算机遇到WHILE语句时,先判断条件的真假,如
果条件符合,就执行WHILE与WEND之间的循环体;然
后再检查上述条件,如果条件仍符合,再次执行循环体,
这个过程反复进行,直到某一次条件不符合为止.这时,
计算机将不执行循环体,直接跳到WEND语句后,接着执
行WEND之后的语句.练习、根据1.1.2例3中的程序框图,编写
计算机程序来计算1+2+…+100的值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语句的? 思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.i=1
sum=0
DO
sum=sum+i
i=i+1
LOOP UNTIL i>100
PRINT sum
END结束程序框图:程序:思考3:图1.1-2,用按照算法执行的顺序,把程序
框图中的内容转化为相应的程序语句。开始输入nflag=1n>2?d=2是d整除n?flag=0d<=n-1且
flag=1?flag=1?n是质数结束是d=d+1否否n不是质数否是否是(1) n=5
开始Flag=1n>2d=2输入nd<=n-1且
flag=1?N不是质数n是质数d整除n?Flag=0Flag=1?结束d=d+1是是是否否是否(1)(2)(2)n=48否 INPUT “n=”;n
flag=1
IF n>2 THEN
d=2
WHILE d<=n-1 AND flag=1
IF n MOD d=0 THEN
flag=0
ELSE
d=d+1
END IF
WEND
END IF
IF flag=1 THEN
PRINT n;"是质数."
ELSE
PRINT n;"不是质数."
END IF
END思考题:判断质数的
算法是否还有所改进?练习 P241.根据你画出的用二分法求方程x2-2=0的
近似根的程序框图,写出相应的程序语句。2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值。3.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)练习 P241.根据你画出的用二分
法求方程x2-2=0的
近似根的程序框图,
写出相应的程序语句。练习 P24结束练习 P242.编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值。练习 P243.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)练习巩固1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。INPUT n
i = 0
WHILE i < n
i = i + 1
t = i ^ 2
PRINT t
WEND
ENDINPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = n
END2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序。i = 0sum = 0DOi = i + 1sum = sum + iLOOP UNTIL sum>10000PRINT iEND小 结WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件