1、算法初步第一章12基本算法语句12.3循环语句课前自主预习 1理解循环语句的概念,并掌握其结构2会应用条件语句和循环语句编写程序3通过对现实生活情境的探究,体会应用计算机解决数学问题的方便简捷1循环语句循环语句与程序框图中的相对应,一般程序设计语言中都有直到型(UNTIL)和两种循环语句结构,分别对应于程序框图中的直到型和当型循环结构循环结构当型(WHILE)2两种循环语句的对比 1循环语句与条件语句有何关系?提示 循环语句中一定有条件语句,条件语句是循环语句的一部分,离开条件语句,循环语句无法循环但条件语句可以脱离循环语句单独存在,可以不依赖循环语句独立地解决问题2编写程序时,什么情况下使用
2、循环语句?提示 在问题处理中,对不同的运算对象进行若干次相同运算或处理时,一般用到循环结构,在编写程序时要用到循环语句3判断正误(正确的打“”,错误的打“”)(1)UNTIL 语句中先进行条件判断,再执行循环体;WHILE语句中先执行循环体,再进行条件判断()(2)循环语句中一定有条件语句,条件语句中一定有循环语句()(3)直到型循环语句和当型循环语句执行循环体的次数都可能是零()提示(1)UNTIL 语句中先执行循环体,再进行条件判断;WHILE 语句中先进行条件判断,再执行循环体(2)循环语句中一定有条件语句,但条件语句中不一定有循环语句(3)直到型循环语句中执行循环体的次数大于或等于 1
3、.课堂互动探究 题型一UNTIL 语句及应用【典例 1】(1)用 UNTIL 语句写出求 1121314 1999 11000的程序(2)根据下列程序,画出相应的程序框图s0k1DO ss1/k*k1 kk1LOOP UNTIL k99PRINT sEND思路导引(1)这是一个累加求和问题,共有 1000 项相加,可设计一个记数变量,一个累加变量,用循环结构实现这一算法;(2)根据语句转化为程序框图解(1)程序如下:s0i1DO ss1i1/i ii1LOOP UNTIL i1000PRINT sEND(2)程序框图如图所示 对 UNTIL 语句的几点说明(1)直到型循环语句中先执行一次循环体
4、,再判断条件是否满足,以决定继续循环还是退出循环(2)循环次数的控制往往是判断条件,在循环体内要控制条件的改变,否则会陷入“死循环”(3)控制循环次数的变量要综合考虑初始化时和 LOOP UNTIL 后两处,若初始值为 1,则循环体中累加,若初始值为循环的次数,则循环体中递减针对训练 1 下面是求满足 135n2019 的最小自然数 n 的程序框图,试把它设计成程序解 程序如下:S0i1DO SSi ii2LOOP UNTIL S2019PRINT“最小自然数为:”;i2END题型二WHILE 语句的应用【典例 2】(1)设计一个计算 135791113 的算法图中给出了程序的一部分,则在横线
5、上不能填入的数是()S1i3WHILE i14PRINT SEND 当型循环语句的设计策略(1)当型循环也叫“前测试循环”,也就是先判断后执行(2)WHILE 语句中的条件是指循环体的条件,满足此条件时执行循环体,不满足时,则执行循环结构后面的语句针对训练 2 已知程序如下,则输出结果 S_.i0S0WHILE i6 ii2 SSi2WENDPRINT SEND解析 根据程序逐次写出每次循环的结果第一次循环,i2,S4;第二次循环,i4,S41620;第三次循环,i6,S203656.由于 i6 不满足条件,跳出循环,输出 S,结果为 56.答案 56题型三循环语句和条件语句的嵌套【典例 3】
6、编写程序,求出 24 的所有正因数解 程序框图如图所示(MOD 是用来取余数)程序如下:i1DOr24 MOD iIF r0 THEN PRINT iEND IFii1LOOP UNTIL i24END本题在循环结构中包含条件结构,所以在写混合语句时,应明确循环体和条件结构之间的关系,此类循环语句嵌套条件语句的问题和解题思路是:先确定外层的循环语句,再逐步确定内层的条件,一定要保证内层的变量与外层的变量不能冲突,以免引起矛盾针对训练 3 给出以下 10 个数:4,10,70,33,95,74,29,17,60,30,要求将大于 40 的数找出来,画出求解该问题的程序框图,并写出程序解 程序框图如图程序如下:i1DO INPUT x IF x40 THEN PRINT x END IF ii1LOOP UNTIL i10END课堂归纳小结应用循环语句编写程序要注意以下三点:(1)循环语句中的变量一定要合理设置初始值(2)循环语句在循环的过程中需要有“结束”的语句,即有跳出循环的机会.(3)在循环中要改变循环条件的成立因素程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,且在步步逼近跳出循环体的条件.请做:随堂巩固验收