Download presentation
Presentation is loading. Please wait.
1
1.2基本算法语句 1.2.3循环语句
2
1.两种条件语句的一般格式分别是什么? 格式2: 格式1: IF 条件 THEN 语句体1 IF 条件 THEN ELSE 语句体 语句体2
问题提出: 1.两种条件语句的一般格式分别是什么? 格式2: IF 条件 THEN 语句体1 ELSE 语句体2 END IF 格式1: IF 条件 THEN 语句体 END IF
3
2、循环结构: 是 A P 否 Until(直到型)循环 A P 是 否 While(当型)循环 两种循环结构有什么差别?
4
DO 循环体 LOOP UNTIL 条件 一、两种循环语句 作用: 用来实现算法循环结构的功能。 格式一直到型(until型): 循环体
满足条件? n y DO 循环体 LOOP UNTIL 条件 计算机执行UNTIL语句时,先执行DO和LOOP UNTIL之间的循环体,然后判断条件是否成立。如果不成立,执行循环体这个过程可反复执行,直到某一次符合条件为止,这时不再执行循环体,跳出循环体执行LOOP UNTIL后面的语句。
5
例1:用UNTIL语句编写计算机程序,来计算 1+2+…+100的值.
程序框图: 程序: i=1 s=0 DO s=s+i i=i+1 LOOP UNTIL i>100 PRINT s END 开始 i=1 s=0 i>100? 否 是 s=s+1 i=i+1 输出s 结束
6
两种循环语句: WHILE 条件 循环体 WEND 格式二当型(while型): 满足条件? 是 否
果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.
7
思考:用while型语句来编写编写计算机程序来计算1+2+…+100的值
开始 输出s 结束 否 是 s=0 i=i+1 s=s+i 程序: i=1 s=0 WHILE i<=100 s=s+i i=i+1 WEND PRINT s END
8
INPUT “x=”;x PRINT “y=”;y END 开始 输入x 结束 输出y y=x3+3x2-24x+30
书本P21、已知函数y=x3+3x2-24x+30,求自变量x对应的函数值算法的程序框图及计算机程序: 开始 输入x 结束 输出y y=x3+3x2-24x+30 INPUT “x=”;x PRINT “y=”;y END 例2.修改该例的程序,连续输入自变量的11个取值,输出相应的函数值.
9
例2、已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序.
算法分析: 第一步,输入自变量x的值. 第二步,计算y=x3+3x2-24x+30. 第三步,输出y. 第四步,记录输入次数. 第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.
10
n=1 DO INPUT x y=x∧3+3*x∧2-24*x+30 PRINT y n=n+1 LOOP UNTIL n>11
开始 n=1 n=1 DO 否 输入x INPUT x y=x∧3+3*x∧2-24*x+30 y=x3+3x2-24x+30 PRINT y 输出y n=n+1 LOOP UNTIL n>11 n=n+1 END n>11? 结束 是
11
n=1 WHILE n<=11 INPUT x y=x^3+3*x^2-24*x+30 PRINT y n=n+1 WEND END
开始 n=1 n=n+1 输出y y=x3+3x2-24x+30 输入x 是 n≤11? 否 结束
12
练习 编写程序,计算函数f(x)=x2-3x+5当x=1,2, 3,…,20时的函数值。 x=1 WHILE x<=20
y=x^2 -3*x+5 PRINT "y=";y x=x+1 WEND END
13
例3 将用“二分法”求方程 的近似解的程序框图转化为相应的程序.
例3 将用“二分法”求方程 的近似解的程序框图转化为相应的程序. 开始 结束 f(a)f(m)<0? a=m b=m 是 否 |a-b|<d或f(m)=0? 输出m f(x)=x2-2 输入精确度d 和初始值a,b
14
INPUT “a,b,d=”;a,b,d DO m=(a+b)/2 f=a∧2-2 g=m∧2-2 IF f*g<0 THEN b=m ELSE a=m END IF LOOP UNTIL ABS(a-b)<d OR g=0 PRINT m END
15
练习 P32 练习1、任意给定一个大于2的整数n,试设计出一个程序对n是否为质数做出判定. 书本第7页 。 开始 输入n i=2
求n除以i的余数r i=i+1 否 i>=n-1或r=0? 是 否 r=0? 是 n是质数 n不是质数 结束
16
程序: INPUT “n=”;n i=2 DO r=n MOD i i=i+1 LOOP UNTIL i>=n OR r=0
IF r=0 THEN PRINT “n is not a prime number.” ELSE PRINT “n is a prime nmber.” END IF END
17
例4:在下面的程序运行中,计算机输出的结果是多少?
x=20 DO x=x-3 LOOP UNTIL x<0 PRINT x END -1
18
练习:阅读下面的程序,你能说明它是一个什么问题的算法吗?
x=1 WHILE x∧2<1000 PRINT x x=x+1 WEND END 求满足x2<1000的所有正整数x的值.
19
练习 P32 3.编写一个程序,输入正整数n,计算它的 阶乘n!(n!=n*(n-1)*…*3*2*1) s=1 i=1
INPUT "请输入n的值:";n DO s=s*i i=i+1 LOOP UNTIL i>n PRINT "这个数的阶乘为:";s END
20
1.两种循环语句源于两种循环结构,直到型循环语句先执行循环体,再判断条件;当型循环语句先判断条件,再执行循环体.
小结作业 1.两种循环语句源于两种循环结构,直到型循环语句先执行循环体,再判断条件;当型循环语句先判断条件,再执行循环体. 2.直到型循环语句在条件不符合时再执行循环体,当型循环语句在条件符合时再执行循环体. 作业: P32练习:1,2. P33习题1.2A组:3. B组:2.
21
1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。
练习巩固 1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序。 结束 i=0 开始 i = i+1 : t=i^2 i>=n? 否 是 PRINT t INPUT n 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
22
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
Similar presentations