1、第一章 算法初步1.2 基本算法语句1.2.3 循环语句学习目标1.理解基本算法语句的意义.2.掌握循环语句的基本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.合作学习一、设计问题,创设情境请同学们思考以下的问题:1.期末考试后,我们要求出全班 60 名同学的数学成绩的总分,你采用什么方式进行计算?2.某单位在 1 000 名职工中寻找年龄最小的人参加某项活动,你采用什么方法进行筛选?同学们,今天我们开始学习循环语句.二、信息交流,揭示规律问题 1:循环结构有几种形式?问题 2:循环语句的格式及功能是什么样的 ?问题 3:两种循环语句的相同点与不同点分别是什么 ?问题
2、4:在程序中的循环语句与程序框图中的条件结构存在一一对应的关系吗?如何体现?三、运用规律,解决问题【例 1】 修改前面编写过的求函数 y=x3+3x2-24x+30 的值的程序 ,连续输入自变量的 11个取值,输出相应的函数值.【例 2】 教材中的用“ 二分法 ”求方程 x2-2=0(x0)的近似解的程序框图(如图), 包含了顺序结构、条件结构和循环结构.如何把这个程序框图转化为相应的程序?【例 3】 设计一个计算 135799 的解法,编写算法程序.四、变式训练,深化提高1.设计算法求 + 的值.要求画出程序框图,写出用基本语句编写112+123+134 199100的程序.2.青年歌手电视
3、大赛共有 10 名选手参加,并请了 12 名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最低分后再求平均分.试设计一个算法解决该问题,要求画出程序框图,写出程序( 假定分数采用 10 分制,即每位选手的最高分为 10 分,最低分为 0 分).五、反思小结,观点提炼1.循环语句有几种形式?格式是什么样的?2.用两种循环语句编写计算机程序时应注意什么?布置作业课本 P33 习题 1.2 A 组第 3 题.参考答案二、信息交流,揭示规律问题 1:循环结构有两种形式:当型和直到型循环语句结构.1.当型循环结构,如图(1)所示.2.直到型循环结构,如图
4、(2)所示.问题 2:1.当型循环语句当型(WHILE 型 )语句的一般格式为WHILE 条件循环体WEND功能:计算机执行此程序时,遇到 WHILE 语句,先判断条件是否成立,如果成立,则执行WHILE 和 WEND 之间的循环体 ;然后返回到 WHILE 语句再判断上述条件是否成立 ,如果成立,再次执行循环体.这个过程反复执行,直到某一次返回到 WHILE 语句判断上述条件不成立为止.这时,不再执行循环体,而是跳到 WEND 语句后,执行 WEND 后面的语句.因此当型循环又称“前测试型 ”循环,也就是我们经常讲的“ 先测试后执行 ”“先判断后循环”.2.直到型循环语句直到型(UNTIL
5、型)语句的一般格式为:DO循环体LOOP UNTIL 条件功能:计算机执行 UNTIL 语句时,先执行 DO 和 UNTIL 之间的循环体,再判断 UNTIL 后面的条件是否成立,如果条件不成立,返回 DO 语句处重新执行循环体 .这个过程反复执行,直到某一次判断 UNTIL 后面的条件成立为止 .这时,不再返回执行循环体,而是直接跳到 UNTIL语句后,接着执行 UNTIL 语句之后的语句 .因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”“先循环后判断”.问题 3:相同点:都是反复执行循环体语句.不同点:当型循环语句是先判断后循环 ,直到型循环语句是先循环后判断.问题
6、 4:1.当型循环结构:2.直到型循环结构:三、运用规律,解决问题【例 1】 分析 :与前面不同的是,本例要求连续输入自变量的 11 个取值,并输出相应的函数值.先写出解决本例的算法步骤,再画出程序框图.解:第一步,输入自变量 x 的值.第二步,计算 y=x3+3x2-24x+30.第三步,输出 y.第四步,记录输入次数.第五步,判断输入的次数是否大于 11.若是,则结束算法;否则,返回第一步.显然,可以用计数变量 n(1n 11) 记录次数,通过循环结构来实现算法 .程序框图:程序:n=1DOINPUT xy=x3+3 x2-24 x+30PRINT yn=n+1LOOP UNTIL n11
7、END【例 2】 解:程序:INPUT “a,b,d=”;a,b,dDOm=(a+b)/2g=a2-2f=m2-2IF g f99PRINT sEND2.解:由于共有 12 位评委,所以每位选手会有 12 个分数,我们可以用循环语句来完成这12 个分数的输入,同时设计累加变量求出这 12 个分数的和.本问题的关键在于从这 12 个输入分数中找出最大数与最小数,以便从总分中减去这两个数.由于每位选手的分数都介于 0 分和 10 分之间,我们可以先假设其中的最大数为 0,最小数为 10,然后每次输入一个评委的分数,就进行一次比较,若输入的数大于 0,就将之代替最大数,若输入的数小于 10,就用它代
8、替最小数,依次下去,就能找出这 12 个数中的最大数与最小数.循环结束后,从总和中减去最大数与最小数,再除以 10,就得到该选手最后的平均分.程序框图如下:程序如下:s=0i=1max=0min=10DOINPUT xs=s+xIF max=x THENmin=xEND IFi=i+1LOOP UNTIL i12s1=s-max-mina=s1/10PRINT aEND五、反思小结,观点提炼1.两种形式,(1)当型循环语句当型(WHILE 型) 语句的一般格式为WHILE 条件循环体WEND(2)直到型循环语句直到型(UNTIL 型)语句的一般格式为DO循环体LOOP UNTIL 条件2.两种形式条件判断的先后顺序,即先判断条件还是先执行循环体.