1、1用循环结构解决简单问题松江二中 杨晓峰课题:用循环结构解决简单问题教学目标:在学生已经掌握了分支结构的基础上,提出分支结构无法解决或利用分支结构解决较为烦琐的问题,从而导入循环结构。详细讲解用 FOR-NEXT语句实现循环结构,并使用 FOR-NEXT 结构解决若干简单问题,掌握这些简单问题的算法。培养使用程序设计解决实际问题的信息意识,形成解决实际问题的程序设计能力,激发学习程序设计的兴趣。教学重点:1将繁琐的分支结构转为简明的循环结构。2FOR-NEXT 语句的格式和使用。3使用 FOR-NEXT 语句实现评委打分问题的算法。教学难点:1在前一节课的“密码验证”问题上,增加条件“输入三次
2、错误后自动退出” 。分别使用分支结构和循环结构实现该问题的算法。2FOR-NEXT 语句的格式和执行步骤及执行过程中循环变量的变化过程。3使用 FOR-NEXT 语句实现评委打分问题。4在评委打分问题上设计条件去掉一个最高分,去掉一个最低分,得出平均分,修改原来的算法,使之满足新增加的条件。电化教学准备:笔记本电脑、投影仪、幕布、自己编写的评委打分软件。课前准备:1要求学生考虑在前一节课的“密码验证”问题上,增加条件“输入三次错误后自动退出” ,使用分支结构设计算法。2要求学生预习本节教学内容。多媒体设计:自己编写的评委打分软件。练习设计:练习册 P45 第一大题第 1 题、练习册 P46 第
3、二大题第 1 题。教学过程:(上课。同学起立,相互问好)一复习上节课的内容。上节课我们使用分支结构实现了密码验证问题,那么请一位同学上来画出使用分支结构实现该问题的流程图。一位同学在黑板上画流程图2老师:那么在此基础上我们增加条件“输入三次错误后自动退出” ,那么它的流程图又该怎么修改呢?学生修改:开始输入密码密码是否正确?否是输出“密码错误”输出“密码正确”结束开始输入密码密码是否正确?否是输出“密码错误”输出“密码正确”结束计数变量 I=1I 是否等于 3计数变量 I=I+13二介绍并使用 FOR-NEXT 语句老师:好,那么我们怎么使用编程来实现上述算法呢?显然使用 IF 语句将是非常繁
4、琐而且低效的。那么我们来看今天的学习内容 FOR-NEXT 语句。使用这个语句我们可以非常简洁的写出它的程序。老师:我们来看 FOR-NEXT 语句的格式:FOR 循环变量=初值 TO 终值STEP 步长循环体NEXT 循环变量 它的执行过程请大家看教材 P84。老师:接下来我们请看 P83 的题目。在这道题目中我们发现一个规律:分母是递增的。所以我们可以使用累加的办法来求它的值。而累加中递增的分母可以使用循环变量 I 来替代。所以它的循环体是 T=T+1/I。我们接下来看它的程序:T=0 T 赋予初值 0FOR I=1 TO 10 省略步长为 1T=T+1/INEXT I老师:好,接下来我们
5、请大家考虑以下如果是求 1+2+3+.+100 的值,这个程序应该如何改动呢?学生回答(略) 。老师总结:好,我们现在发现在使用大量的重复运算时,我们就可以使用循环结构,而当循环次数确定时,我们就可以使用 FOR-NEXT 语句,从而发挥计算机高速、准确的运算特点。老师:好,现在我们回过头,再来看刚才的密码输入问题。它的程序,我们可以书写出来了。TEXT=“”FOR I=1 TO 3 省略步长为 1INPUT XIF X=“ALIBABA” THENTEXT=“密码正确 ”I=3ELSETEXT=“密码错误 ”I=I+1ENDIFNEXT IPRINT TEXT4三用 FOR-NEXT 语句解
6、决实际问题。老师:请同学们看一下练习册 P46 第一大题的第 2 小题。从键盘输入 11 个评委的打分,求出平均值并输出。这是一个循环次数确定的循环,我们就可以使用FOR-NEXT 语句来编写。我们先请同学来画一下它的流程图。老师:好,那么我们来编写以下它的程序。I=1S=0AV=0开始输入分数 X否是结束计数变量 I=1求和变量 S=0 平均值变量 AV=0I 是否等于 11计数变量 I=I+1求和变量S=S+X平均值变量AV=S/11输出平均值变量 AV5FOR I=1 TO 11INPUT XSUM=SUM+XNEXT IAV=SUM/11PRINT AV老师:那么我们在这个基础上再改造
7、一下,使它更符合实际应用。在这个过程中我们去掉一个最高分,去掉一个最低分,在输出它的平均分数,又该如何修改呢?请大家讨论一下。同学讨论(略) 。老师:对。我们在这个里面设置两个变量,分别取得这 11 个分数中的最低分和最高分,然后用求和变量减掉这两个变量再除以 9 就得出平均值。接下来我们再把这个程序修改以下。I=1S=0AV=0MIN1=100MAX1=0FOR I=1 TO 11INPUT XIF X MIN1 THENMIN1=XEND IFIF X MAX1 THENMAX1=XEND IFSUM=SUM+XNEXT ISUM=SUM-MIN1-MAX1AV=SUM/9PRINT AV老师:好,我们这节课上到这里。接下来,老师做了一个评委打分的程序,请同学参与一下。请大家就这节课对 FOR-NEXT 语句实现循环结构的情况打一下分。学生打分。在屏幕上打出平均分。作业布置:考虑评委打分程序的局限性,思考如何改进。6