250 likes | 400 Views
温故而知新. 1 、顺序结构常用的程序语言和格式. 输入语句 INPUT “ 提示文字”;变量. 输出语句 PRINT “ 提示文字”;表达式. 赋值语句 变量 = 表达式. 2 、条件结构常用的程序语言和格式. ( 1 ). IF 条件成立 THEN 语句 END IF (选不选). ( 2 ). IF 条件成立 THEN 语句 1 ELSE 语句 2 END IF ( 二选一). 问题提出. 格式 2:. 格式 1:. IF 条件 THEN 语句体 1 ELSE 语句体 2 END IF. IF 条件 THEN 语句体
E N D
温故而知新 1、顺序结构常用的程序语言和格式 输入语句INPUT“提示文字”;变量 输出语句PRINT“提示文字”;表达式 赋值语句变量=表达式 2、条件结构常用的程序语言和格式 (1) IF条件成立THEN 语句 END IF (选不选) (2) IF条件成立THEN 语句1 ELSE 语句2 END IF (二选一)
问题提出 格式2: 格式1: IF 条件 THEN 语句体1 ELSE 语句体2 END IF IF 条件 THEN 语句体 END IF 1.两种条件语句的一般格式分别是什么?
2.对于顺序结构、条件结构的算法或程序框图,我们可以利用输入语句、输出语句、赋值语句和条件语句写出其计算机程序.对于循环结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习循环语句.
(一)复习回顾 循环结构的定义: 在一些算法中,从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构。 反复执行的处理步骤称为循环体。
循环体 循环体 否 满足条件? 是 满足条件? 否 是 • 问题1:你能说出下图中两种基本循环结构的类型并说出其区别吗? 直到型循环结构 当型循环结构 先执行 后判断 先判断 后执行 先判断指定的条件是否为成立,若条件成立,执行循环条件,条件不成立时退出循环。 先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。
问题2: 对于程序框图中两种循环结构,一般程序设计语言中又是怎样来描述的呢? 循环结构 循环语句 对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。
也叫“前测试型”循环 当型循环 循环体 满足条件? 是 否 (1)WHILE语句的一般格式: WHILE条件 循环体 WEND (满足) 当计算机遇到WHILE语句时,先判断条件的真假,如 果条件满足,就执行WHILE与WEND之间的循环体;然 后再检查上述条件,如果条件仍满足,再次执行循环体, 这个过程反复进行,直到某一次条件不满足为止.这时, 计算机将不执行循环体,直接跳到WEND语句后,接着执 行WEND之后的语句.
开始 i=1 s=0 i=i+1 i<=100? s=s+i 是 否 输出s 结束 例题:根据1.1.2例3中的程序框图,编写计算机程序来计算1+2+…+100的值 程序: i=1 s=0 条件 i<=100 WHILE WEND s=s+i i=i+1 循环体 PRINT s END (1)正确画出程序框图; (2)找出循环结构,并转化成循环语句;
循环体 满足条件? 否 是 (2)UNTIL语句的一般格式: Until(直到型)循环 DO 循环体 LOOP UNTIL条件 思考1:参照直到型循环结构,说说计算机是按怎样 的顺序执行UNTIL语句的? 思考2:用UNTIL语句编写计算机程序,来计算 1+2+…+100的值.
直到型循环结构 也叫“后测试型”循环 循环体 否 满足条件? 是 DO 循环体 LOOP UNTIL 条件 (不满足) 从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,执行LOOP UNTIL语句后的语句.
开始 s=0 i=1 s=s+1 i=i+1 否 是 输出s 用UNTIL语句编写计算机程序,来计算 1+2+…+100的值. 程序: 程序框图: i=1 s=0 DO s=s+i i=i+1 LOOP UNTIL i>100 PRINT s END 条件相反 i >100? 结束
思考1: 当(WHILE)型与直到型( UNTIL)是否可以互相转化? 可以 i=1 s=0 DO s=s+i i=i+1 LOOP UNTIL i>100 PRINT s END i=1 s=0 WHILE i<=100 s=s+i i=i+1 WEND PRINT s END 条件相反
思考2: 以下两个程序输出结果是否一样? ? 一样 i=10 s=0 DO s=s+i i=i+1 LOOP UNTIL i>9 PRINT s END i=10 s=0 WHILE i<=9 s=s+i i=i+1 WEND PRINT s END 10 0 当型不一定执行循环体 直到型至少执行一次循环体
思考3: 阅读下面的程序,你能说明它是一个什么问题的算法吗? x=1 WHILEx∧2<1000 PRINT x x=x+1 WEND END 求满足x2<1000的所有正整数x的值.
例1 已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序. 算法分析: 第一步,输入自变量x的值. 第二步,计算y=x3+3x2-24x+30. 第三步,输出y. 第四步,记录输入次数. 第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.
开始 n=1 输入x y=x3+3x2-24x+30 输出y n=n+1 否 n>11? 是 结束 n=1 DO INPUT x y=x∧3+3*x∧2-24*x+30 PRINT y n=n+1 LOOP UNTILn>11 END
i=1 i=1 WHILE i<=100 DO If i mod 2=0 then If i mod 2=0 then PRINT i PRINT i END IF i=i+1 END IF i=i+1 WEND END LOOP UNTIL i>100 END 例2:编计算机程序输出1~100之间(含1和100)的所有偶数。 WHILE型程序: UNTIL型程序: 思考:能用UNTIL型来编写程序?
练习1: 编计算机程序输出1~100之间(含1和100)能被3整除的所有整数。(分别用WHILE型和UNTIL型) i=1 i=1 WHILE i<=100 DO If i mod 3=0 then If i mod 3=0 then PRINT i PRINT i END IF END IF i=i+1 i=i+1 LOOP UNTIL i>100 WEND END END WHILE型: UNTIL型:
循环体 循环体 满足条件? 满足条件? 否 是 是 否 循环体 满足条件? 是 满足条件? 否 是 否 循环体 2.下列哪些是WHILE语句结构,哪些是UNTIL语句结构? (1) (2) 注意:大家做程序框图时,避免出现(3)(4)种情况。 UNTIL语句结构 WHILE语句结构 (4) (3) 两者都不是 两者都不是
UNITL语句 直到型 开始 i=1 S=0 i=1 S=0 DO S=S+i S=S+i i>100? i=i+1 i=i+1 否 LOOP UNTIL i>100 是 PRINT S 输出S END 结束 3.设计一个程序,求1²+2²+3²+4²+5²+… +100²的值。 1+2+3+4+5+… +100 如何修改? WHILE语句 WHILE i<=100 S=S+i2 S=S+i^2 WEND
3.如果以下程序运行后输出结果是720,那么在程序中UNTIL后面的条件应为( ) D i=10 s=1 DO s=s*i i=i -1 LOOP UNTIL “条件” PRINT s END ② S=90 i=8 ③ S=720 i=7 ① S=10 i=9 不满足 WHILE i>=8 s=s+i i=i+1 WEND 满足 条件相反 A.i>8 B. i>=8 C. i<=8 D. i<8
小结 1.正确写出含有循环结构的程序应注意的问题: (1)正确画出程序框图; (2)找出循环结构,并确定是哪种类型的循环结构; (3)根据循环结构写出相应的循环语句。
2.WHILE语句UNTIL语句的区别 DO 循环体 LOOP UNTIL 条件 WHILE条件 循环体 WEND 3.WHILE语句UNTIL语句的联系
强 调 两种循环语句: (1)While(当型)循环 循环体 循环体 满足条件? 满足条件? 是 是 否 否 (2)Until(直到型)循环 WHILE条件 循环体 WEND 满足 DO 循环体 LOOP UNTIL 条件 不满足