《For循环语句》教案设计
课标要求
会使用程序设计语言实现循环控制结构。
教学目标
知识与技能
理解循环结构的基本思想。
掌握用For循环语句编写程序。
过程与方法
提高学生逻辑思维能力,使其可以独立完成简单循环结构算法的设计。
培养学生分析问题,解决问题的能力。
情感态度价值观
提高学生学习兴趣,培养学习的主动性和探究性。
培养学生合作意识,体验成功的快乐。
教学重点
掌握For循环语句的格式,能用For循环编写程序。
教学难点
控制循环的条件、确定循环体的内容。
教学过程
环节
教师活动
学生活动
意图
一、
问题导入
同学们,之前我们学习了程序基本结构中的顺序结构和选择结构,今天我们一块来学习一下最后一种结构:循环结构。那么循环结构一般是在什么情况下使用?又如何实现呢?
我们先一起来看一则故事,这个故事相信大家都不陌生:《国际棋盘上的麦粒儿》,大家先来阅读这个故事。
故事中国王一开始觉得老人的要求很简单,结果却令他大吃一惊,那老人到底要了多少麦子呢?我们一起来帮国王算一算。
我们都知道,国际棋盘总共有多少格?(64格)好,那我们用更直观的方式表示出来,老人的要求是,第一格里放1粒,第二格是第一格的2倍,第三格是第二格的2倍,以此类推,我们可以得出这样一系列表达式。通过观察,我们不难发现,这些麦粒数都和2有关,那我们可不可以通过麦粒数与2之间的关系,将每一格的麦粒数表示成更为简洁直观的方式?好,那假设我们用N来表示棋盘格子序号,用K来表示每格里面的麦粒数,用S来表示麦粒总数(S初值为0),那每格中的麦粒数K可以依次表示为……,?那我们可以得出,K和N之间的关系,应该怎么表示?
接下来我们再看S,一开始,S=0,接着,当N=1的时候,S=……,N=2时,S=……,以此类推,当N=64时,S=……,那我们看一下,S的通式应该怎么表示呢?
好,通过观察通式,我们可以发现,每格麦粒数K实质上是随着N的递增,怎么变化?(也就是说,K其实一直在重复执行乘2 的操作),那麦粒总数S又是怎么变化?(也就是说,S一直在重复执行累加K的操作)。
像这种需要重复执行某一段代码的程序,我们就用循环结构来实现。利用循环结构,可以通过少量语句,让计算机重复执行许多次,从而完成要求。
学生思考讨论,发现故事中存在的数学规律,并用数学形式进行表达:
……
通过观察数学表达式,学生归纳总结出K和S的与棋盘格数之间的关系:
=+
学生透过表达式找到问题的实质。
故事导入,引起学生兴趣
引导学生归纳总结
引导学生找到问题的突破口
二、
学习新知
那么在循环结构中,需要重复执行的内容,称之为循环体。
那大家想一下,如果一直重复执行循环体的话,我的程序就容易陷入死循环,那怎样可以避免这种情况的发生呢?(需要我们控制好循环的次数,一般用计数变量来控制循环次数)。
请大家思考,上例中,我可以通过控制哪个变量的值来控制循环次数?(很好,我们可以通过限定N的取值范围,来控制循环的次数),那我们应该怎样通过代码的方式来实现循环呢?(For-Next语句来实现)
首先来看下For循环的语句格式:开头先用For表示循环起始,后面紧跟着循环变量的数值范围,从初始值到终值,类似于我们上面说到的计数变量,通过限定这个循环变量的范围来控制整个循环的次数。后面步长,用关键字Step连接,步长指的就是循环变量每次变化的增量,(如果每循环一次,循环变量增加1 ,那Step后面应该写?1;如果每循环一次,循环变量减少1 ,那Step后面应该写?-1),当步长为1时可以省略,直接写到循环变量的终值就可以了。好,接着进入下一行,循环体,也就是说,当循环变量满足For后面的范围时,我就重复执行,中间的循环体。最后一行是Next语句,表示循环终端,后面的循环变量必须与For后面的循环变量保持一致,表示下一个循环变量,那下一个循环变量也就是在循环变量当前值的基础上加上步长,然后得到心得循环变量值,再返回For语句,看看是否还满足范围,如果满足,继续执行循环体,直至Next循环变量的值超出其范围,直接跳出循环。
那接下来,我们就用For循环语句来解决一下“国际棋盘上的麦粒”问题。首先定义变量,然后通过循环计算最终的麦粒数。需要大家利用For循环语句来补充完整这个程序,未完成的程序已经发到大家的电脑上,大家打开补充程序这个.frm文件,打开代码窗口,将程序补充完整,看看最终国王需要给出多少粒麦子?(也就是1.844674*10^19,折算重量约为2000多亿吨,所以说全印度的麦子都不够。)
通过引导,学生很容易发现控制循环的条件,并确定在该问题中的循环条件
学生通过动手实践,补充调试程序,并运行,计算出结果:
1.844674E+19
通过让学生尝试体验,解决实际问题,掌握循环结构
三、
拓展应用
刚刚我们利用For循环语句解决了“国际棋盘上的麦粒”麦粒问题,接下来,请同学们用For循环来设计程序找到所有的“水仙花数”。说到“水仙花数”,大家还记不记得它的定义?
上节课咱们已经设计出了寻找“水仙花数”的算法,并且绘制出了流程图,我, 一起来看一下(……),那接下来的时间交给大家,桌面上有导学案和一个水仙花数的frm文件,界面已经给大家设计好了,大家可以根据导学案,直接打开代码窗口编写程序,找到所有的“水仙花数”。
回顾“水仙花数”:
一个三位数,每个位上的数字的立方和正好等于这个数本身。
给学生时间动手操作,最后请学生演示。
学生通过独立设计算法,利用循环结构编写程序,解决问题
四、
总结提升
看下面三个问题,一起来回顾一下我们这节课所学知识。
巩固新知
课件14张PPT。——寻找“水仙花数”相传,古印度一位老人发明了国际象棋,深得国王喜欢。于是,国王为了奖赏老人,让他提任何要求,都会满足。
老人的要求是:在棋盘上的第一个格子上放1粒麦子,第二个格子上放2粒,第三个格子上放4粒,第四个格子上放8粒……以此类推,每个格的米粒数是前一格的2倍,直到最后一个格子放满为止。国王哈哈大笑,慷慨地答应了老人的请求。然而,国王最终发现,按照与老人的约定,全印度的麦子竟然连棋盘一小半格子数目都不够……“国际象棋棋盘上的麦粒儿”帮国王算一算要给多少麦粒儿?1*21*2*21*2*2*21……帮国王算一算要给多少麦粒儿?……????设棋盘格子序号为 N,
格子里的麦粒数为 K,
所需麦粒总数为 S(初始值为0)????????……?For 循环变量=初始值 to 终值 Step 步长
循环体
Next 循环变量 For-Next循环语句Next语句:循环终端语句,其后面的循环变量须与For后面的循环变量一致。For语句:“循环起始语句”,确定循环变量的值如何变化,从而控制循环次数。循环变量:数值变量,循环控制变量。步长:循环变量每次变化的增量,可以是正数,也可是负数,当步长为1时可以省略。循环体:需要重复执行的语句序列Dim N As Integer ‘定义变量N表示棋盘格子序号
Dim K As Single ‘定义变量K表示格子里的麦粒数
Dim S As Single ‘定义变量S表示麦粒总数Private Sub Form_Click()
S = 0 ‘S初值为0
For To Step
K =
S =
Next
Print S ‘输出S的最终值
End SubN=16412^(N-1)S+KN请设计程序找到所有的“水仙花数”开始x=100x<=999Ya=x100, b=(x-100*a)10, c=x-100*a-10*ba^3+b^3+c^3=xY输出xx=x+1NN结束什么情况下用到循环结构?循环结构的实现语句For-Next语句格式