1、重点难点教学重点:用循环结构的流程图表示算法.教学难点:多种结构的嵌套使用.课时安排1课时教学过程导入新课设计思路一:(情境导入)同学们小时候一定都有过缠着父母听故事的经历,有时候爸爸妈妈实在想不出故事了,就会用一个“故事”来哄骗孩子:从前有座山,山里有个庙,庙里有个老和尚.有天老和尚对小和尚说,我给你讲个故事说啊:现在考虑,为什么说这个“故事”是哄骗小朋友的?因为这个“故事”一直在重复着同样的环节:“从前有座山,山里有个庙,庙里有个老和尚,”所以这个“故事”可以无限次循环.我们可以把这个环节写成一个算法,这个算法是一直重复同样的操作,多次循环,直到孩子打断父母的“故事”为止.在现实生活中,还
2、有好多这样的例子,在整个问题的执行过程中,一直循环执行相同的一部分步骤,直到符合或者不符合某个条件时才终止.请同学们举出这样的一些例子.例如:1.同学们从小学开始,每年9月初开学,到学校里上课,一个学期后放寒假,过了寒假再开学,又一个学期后放暑假,然后下一年9月初再开学回到学校上课寒假上课暑假,直到不再上学为止.2.今天是星期三,过了一天是星期四,过了两天是星期五过了七天又是星期三,这样周而复始循环出现.3.计算1+2+3+4+100,第一步计算12;第二步将上一步中的运算结果与第三个数相加;第三步将上一步中的运算结果与第四个数相加;第四步将上一步中的运算结果与第五个数相加;第i步将上一步中的
3、运算结果与第i1个数相加;直到执行完第99步后才得到结果.上述例子都是在运行过程中循环执行相同的步骤,这样的算法结构就是循环结构.(引入新课,板书课题循环结构)设计思路二:(问题导入)观察下面的流程图(图1),回答这个流程图的功能是什么?其中最主要的操作步骤是什么?图1这个流程图从学号为1的学生开始,输出他的成绩,然后判断学号是否为尾号,如果不是,让学号增加1,继续输出2号学生,再判断学号是否为尾号,如果不是,学号再增加1,输出下一位学生的成绩,直到学号为尾号,即最后一名学生才结束程序,因此这个流程图的功能是输出所有学生的成绩.其中最主要的就是多次重复执行的判断学号、改变学号、输出成绩的过程.
4、要输出所有学生的成绩,应该有很多个输出框,为什么流程图中只有一个输出框?因为每次输出学生的成绩都是一种重复的操作:先确定要输出哪一位学生的成绩,然后再输出.这个过程将重复出现,进行循环操作,直到所有学生全部输出(即学号为尾号)才结束,这样的结构最主要的部分就是有循环形式的结构出现,我们把这样的结构称为循环结构.推进新课新知探究北京获得了xx年第29届奥林匹克运动会的主办权.你知道在申办奥运会的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?对遴选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市将获得主办权;如果所有申办城市得票数都不
5、超过总票数的一半,则将得票数最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止.这个表决过程可以用算法写出,请同学们写出这个算法. 算法:S1投票;S2统计票数,如果有一个城市得票数超过总票数的一半,那么该城市获得主办权,转S3,否则淘汰得票最少的城市,转S1;S3宣布主办城市.在这个过程中,如果统计票数后任意一个城市得票数都没有超过总票数的一半,那么将重复执行投票统计票数这一过程,直到有一个城市得票数超过总票数的一半为止.这里出现了一个循环操作的内容,而最终应该循环多少次,在整个表决结果出来以前是无法知道的,也许第一次表决后就结束,也许要表决3次、4次,所以如果用流程图来表示,我们会
6、发现仅仅利用前面学过的顺序结构和选择结构将无法实现,那么将怎样来画出这个问题的流程图呢?根据算法,是否要返回S1,即继续投票,就看是否有一个城市得票数超过总票数的一半,如果没有,将返回S1执行循环,如果有一个城市得票数超过总票数的一半,就立即结束表决,因此我们可以把流程图画成图2的形式:图2像上面的算法中的这种需要重复执行同一种操作的结构称为循环结构.重复执行的那些步骤就称为循环体.如图3,虚线框中的流程结构就是一种常见的循环结构,其功能是先执行框A,然后判断给定的条件P是否成立,若条件P不成立,则再执行框A,执行完框A后继续判断条件P是否成立,如果不成立,再执行框A,再判断条件P,如此反复执
7、行框A,直到判断条件P时发现成立为止,此时不再执行框A,而是脱离这个循环结构. 图3 图4上面的这个循环结构实际上就是最常用的直到型(Until型)循环.在循环结构中还经常出现当型(While型)循环,其结构如图4中虚线框内的形式,它的功能是当给定条件P成立时,先执行框A,然后判断给定的条件P是否成立,若条件P成立,则再执行框A,执行完框A后继续判断条件P是否成立,如果成立,再执行框A,再判断条件P,如此反复执行框A,直到判断条件P时发现不成立为止,此时不再执行框A,而是脱离这个循环结构.比较上面的循环结构和上一节课学习的选择结构,它们都有一个判断框,选择结构中从判断框出来的两条分支都不再返回
8、而是直接结束(当然也可以再执行其他步骤),这个判断框只会判断一次,而循环结构中从判断框出来的两条分支一条直接流向结束,另一条会返回上面的某一处继续执行相同的操作,这个判断框会判断多次.因此如果出现判断,就看判断后是不是返回执行相同的操作,如果不再返回,那就是选择结构,如果要返回重复执行某一些操作,那就是循环结构.应用示例思路1例1 用连加的方法写出求的算法和流程图.分析:本题指明了用连加的方法,所以先进行2+2的运算,然后把结果再加2,然后把结果再加2,然后把结果再加2,这样一共需要进行9次加法运算就可以输出运算结果了.因此我们在流程图中应该有一个统计进行了多少次加法运算的计数器,这个计数器的
9、功能是每进行一次加法运算就“加1”,直到计数器内的统计数据达到9时就结束加法,输出运算结果.解:算法如下:S1加法计数器I设置初值0;S2和存储器S设置初值2;S3计算S+2,结果放入和存储器S;S4加法计数器I加1;S5如果I9,则输出S,否则转S3.这个算法也可以用简洁的符号表示:S1I0;S2S2;S3SS+2;S4II+1;流程图如图5所示:图5思考1.这个循环结构中的循环体由哪几个步骤组成?由流程图很清晰地看出,重复执行的循环体由处理框“SS+2”、“II+1”和判断框“I9”组成.2.本题中,变量I和S分别起什么作用?为什么两个变量的初值一个为0,一个为2?变量I实际上就是一个统计
10、进行了多少次加法运算的计数器.根据流程图,开始时I0,说明还没有进行运算,经过一次“SS+2”后,再执行“II+1”,这时I=1,说明进行了一次加法运算,然后判断“I9”,结果为“N”,判断后返回执行“SS+2”(注意:现在进行的是第二次加法运算),再下一步就又是执行“II+1”,这时I=2,说明进行了二次加法运算,然后继续判断“I9”.我们发现这样的规律:进行了多少次加法(SS+2),I就等于这个次数.而题目一共要进行9次加法运算,所以如果“I9”不成立(判断结果为“N”),则继续累加,直到“I9”成立(判断结果为“Y”),才脱离循环结构,输出S,结束程序.当然,变量I只可能出现I=9,不可
11、能出现I9的情况,因为I=9时就跳出循环体,不再继续返回执行“SS+2”和“II+1”了.图6变量S实际上就是一个存储加法运算的结果的存储单元.每次都是把上一次的运算结果加上2以后作为下一次的一个加数,所以我们把这个加法的结果一直存储在存储器S中.3.如果我们把判断框中的条件“I9”改为“I=9”是否可以?根据“思考2”的分析,变量I只可能出现I=9,不可能出现I9的情况,所以这样修改也是可以的.4.如果我们把选择结构改变为如图6的形式,即把判断框中的条件“I9”改为“I9”,再把“Y”和“N”交换是否也符合要求?根据图6,当加法的次数I满足“I9”(判断结果为“Y”)时,说明加法的次数还不满
12、9次,所以再返回执行加法运算“SS+2”,再执行“II+1”(计数器增加1),然后继续判断“I9”是否成立,直到判断结果为“N”(加法次数“不是小于9次”),说明已经加了9次了,这时脱离循环体,输出S,结束程序,所以这样的修改也是可以的.但是一般情况下,在这种循环结构中,我们总是习惯于“满足条件就脱离循环结构,否则返回继续执行”这种格式,这样统一以后便于他人阅读、理解和修改,也便于计算机专业人员把流程图翻译成计算机语言编成计算机程序.点评:特意设置一个难度较低的题目,是为了让学生容易着手,便于理解和掌握这种新型的程序结构.因此写出算法和流程图不难,老师不要急于做下一个例题,要把“思考”中的内容详细讲解,重点讲清变量I和S的意义,直到学生弄清楚循环结构的原理为止. 例2 写出求1+2+3+4+5值的一个算法,并画出流程图.本题前面课时已讲过,一共也只有4次加法运算,所以可以直接连加五个数.但是这个方法只能适用于运算次数比较少的形式,对连加次数较多时就显得比较烦琐.当然本题也可以使用等差数列求和公式,直接求前五项的和,这样可以求任意多次连加运算,但是对于没有学习过这个公式的人就不适用了.其实本题实质是连加,每次都是把上一次加法的结果再继续加上下一个数,直到这个加
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1