DO循环语句教学设计.docx
《DO循环语句教学设计.docx》由会员分享,可在线阅读,更多相关《DO循环语句教学设计.docx(10页珍藏版)》请在冰豆网上搜索。
DO循环语句教学设计
DO循环语句教学设计
【教材内容分析】
注重实例分析,将程序设计语言作为解决问题的工具,充分利用VB的特点,从实际需要出发,围绕实例进行DO循环语句教学并上机实践程序代码的编写。
本节内容属于程序设计基础部分中循环结构内容的教学,循环结构是程序设计中的重点也是难点,仅靠教材上的一个例题是不能让学生真正掌握和理解的。
实现循环结构的语句除了FOR循环语句之外,还应该给学生介绍DO循环语句,它可以实现未知循环次数的循环结构。
【学生情况分析】
本模块教学对象为高一的学生,在学习本课之前,学生已经学习了FOR循环语句,理解了循环的含义,并且能够运用FOR循环语句实现累加计算。
本阶段的学生求知欲望强烈,喜欢自己思考问题,但缺乏互相讨论的意识。
由于“算法与程序设计”模块的特点,内容抽象难懂,表现形式枯燥,很容易造成书写程序的畏难心理,因此教师需要帮助学生克服这种心理障碍。
【教学方法】
教法:
实例分析、任务驱动
学法:
自主探究、协作学习
【教学资源】
教师用资源:
教学演示文稿(PPT)
学生用资源:
“折纸游戏”源程序
【教学目标】
知识与技能:
(1)能够按照格式要求正确书写DO循环语句。
(2)结合实际问题,能够理解DoWhile……Loop格式的执行过程。
(3)能够说出FOR循环语句与DO循环语句的区别。
过程与方法:
(1)通过实际问题分析,能够正确选择所应用的循环语句。
(2)根据问题需求,能够确定循环控制条件及循环内容,积累程序设计经验。
情感态度与价值观:
(1)在“折纸超身高”和“植树问题”的实例分析中积极思考,形成主动探究新知的意识。
(2)增强DO语句在实际生活中的应用价值,提升主动学习程序设计的欲望。
【教学重点】
DO循环语句的执行过程及适用条件。
【教学难点】
结合实际问题,确定控制循环的条件及循环内容。
【教学过程】
环节1:
创设情景,趣味引出
(设计意图:
在游戏中激发学生兴趣,找出纸的厚度的变化规律。
)
教师:
一张普通的办公用纸,它的厚度大约有0.05毫米,现在要将此纸对折5此,纸的厚度是多少?
你有哪些计算方法?
学生:
(1)0.05*25
(2)对折一次,计算一次。
这样每次对折的厚度是上一次对折厚度的2倍。
教师:
很好!
用赋值语句来实现就是S=2*S。
环节2:
循序渐进,发现问题
(设计意图:
巩固FOR循环语句的应用,在问题分析中引导学生发现FOR循环语句的不足,引出本课的主题。
)
教师:
经科学实验证明,由于纸的厚度和柔韧度的影响,一张纸最多只能对折7次。
(来源于中央电视台的“走进科学”栏目)
因此,下面将要研究的问题是在理想的状态下。
(提问)将此纸对折10次,纸的厚度是多少?
学生:
(打开练习源程序,完善教师给出的不完整程序。
)
教师:
(再次提问)如果有一张无限大的纸,对折多少次后纸的厚度能够超过你的身高呢?
学生:
(学生上机尝试修改程序)
教师:
(提问完成的学生)你的计算结果是什么?
你是如何修改程序的?
学生:
我的身高是1.62米,需要对折15次。
(展示其修改的程序)
ForN=1To15
S=2*S
IfS>1620ThenPrintN,S
NextN
我在循环中加入了判断,如果纸的厚度超过了1.62米,则输出折纸次数和纸的厚度。
教师:
(进一步提问)你是如何确定循环次数的呢?
学生:
(边讲解边演示)先把终值稍微改大一些,比如12,运行程序发现没有输出结果,我觉得可能是估算次数太小了,于是我又把终值设为20,运行程序发现输出了多组数据,从这些数中我发现应该是折15次。
教师:
从这位同学的尝试中可以看出,要想得到正确结果,需要不断测试终值。
终值小了,没有输出结果;终值大了,就会有多余的数据输出。
因此要实现次数未知的循环,FOR语句是比较困难的。
为了解决这个问题,今天同学们将学习一种新的语句——DO循环语句。
(教师板书课题)
环节3:
讲解新知,初试身手
(设计意图:
讲授DO循环语句的相关知识,利用“折纸计算”初步体会DO循环语句的实际应用。
)
教师:
首先我们来了解DO语句的格式。
(教师板书)
(结合流程图讲解DO语句的执行过程)
按照程序自顶向下执行的原则,当程序遇到DO语句时,首先判断WHILE后面的条件,如果条件满足,将执行循环体语句,之后再判断条件是否满足,从而形成重复的过程,直到条件不满足时结束循环。
学习了DO语句的基本知识,该语句在“折纸计算”问题中如何实现呢?
(课件展示计算过程,如右图。
)请同学们尝试将流程图用程序
语言实现。
学生:
(学生上机实践)
教师:
(巡视学生,对个别人进行指导)
已经有同学完成了程序代码的书写,他发现有多组数据输出,我们来帮他看看问题出在哪里?
(利用电子教室软件转播一位学生的程序代码)
DoWhileS<=1600
N=N+1
S=2*S
PrintN,S
Loop
学生:
(互相讨论)
输出语句应该放在Loop的后面。
教师:
(进一步追问)为什么呢?
学生:
因为输出语句不属于重复执行的部分。
教师:
很好!
请大家注意这个问题。
下面,程序仍有问题的同学继续调试;已完成任务的同学,请尝试一下计算至少对折多少次后纸的厚度能够超过珠穆朗玛峰的高度(8844米)。
学生:
(结合自己完成任务的进度有选择的上机实践)
教师:
(阶段小结)通过实践发现,FOR语句实现次数未知的循环时需要估算循环次数,并且在循环体中需要加入条件语句进行判断;而用DO语句时则不必考虑循环次数的限制。
因此,在实现次数未知的循环时,利用DO语句是比较理想的。
环节4:
再接再厉,融会贯通
(设计意图:
通过阅读两段相近的程序,体会DO语句的执行过程,并强调避免死循环的重要性。
)
教师:
(课件展示练习内容,如右图。
)
阅读程序1,思考其执行结果是什么?
学生:
(思考后回答)a和b的初值分别是50和15,此时a的值大于10,执行一次循环,即a=35;此时a的值依然大于10,再执行一次循环,a=20;此时a的值依然大于10,再执行一次循环,a=5;此时a的值小于10,循环结束。
因此结果是:
35、20、5。
教师:
阅读程序2,思考其执行结果是什么?
学生:
(思考后回答)结果是35、15、35、15、……。
因为此时a的值是50,程序中没有修改a的值,因此a>10永远成立,循环将会永远执行下去。
教师:
(演示程序)我们上机运行一下这个程序。
这种现象我们称为“死循环”,即程序会无休止的运行,此时可以利用“Ctrl+Break”组合键终止程序运行。
由此可以看出用DO语句实现循环时,为了保证循环能够正常退出,循环体中必须有改变条件变量值的语句,避免出现“死循环”。
环节5:
巩固知识,拓展提高
(设计意图:
巩固DO循环语句的使用,提高分析问题、书写程序代码的能力。
)
教师:
(问题描述)
陈婷今年17岁,为了支持环保,她在今年生日的这一天种了1棵树。
她有一个美好的愿望,那就是从明年开始她每年比前一年多种一棵树。
这样下去,到多少岁时才能累计种到活超过100棵?
请同学们分组讨论可以有哪些实现方案。
学生:
(分组讨论,上机实践。
)
(成果展示交流)
学生甲:
(展示其实现的程序)
DimtreeAsInteger
DimnAsInteger
DimtAsInteger
tree=1
n=17
t=1
DoWhiletree<100
n=n+1
t=t+1
tree=tree+t
Loop
Print“到”;n;”岁时累计种到”;tree;”棵”
学生甲讲解:
我用tree表示种树总和、n表示年龄、t表示每年种的树,在总和不超过100的条件下,年龄要+1,计算当前这一年要种的树,还要计算出当前的种树总和。
学生乙:
(展示其实现的程序)
DimtreeAsInteger
DimnAsInteger
tree=0
n=0
DoWhiletree<100
n=n+1
tree=tree+n
Loop
Print“到”;n+17;”岁时累计种到”;tree;”棵”
学生乙讲解:
在循环中我没有计算年龄的变化,因为n既可以表示每年种树,也可以表示种了多少年,因此最终的年龄应该是n+17。
学生丙:
(展示其实现的程序)
DimaAsInteger
DimtAsInteger
a=17
t=1
DoWhilet<100
a=a+1
t=t+a-16
Loop
Print“到”;a;”岁时累计种到”;t;”棵”
学生丙讲解:
我用a表示年龄,用t表示总棵数。
我发现每年所种树木=年龄-16,因此计算总棵数就可以用t=t+a-16。
教师:
看到同学们用多种方法完成了问题求解,老师很高兴。
同学们的方法都有自己独到的见解,这说明大家在程序设计的道路上又迈进了一大步。
环节6:
自我考察,课堂反馈
(设计意图:
通过完成教师给定的练习题,重点考察学生对DO循环语句执行过程及“死循环”的理解,)
学生:
(完成教师指定的练习题目,并将答案反馈给老师。
)
1.以下程序的运行结果()
DimaAsInteger
a=1
DoWhilea<=10
a=a+2
Loop
Printa;
A、10B、11
2.以下哪种情况会出现“死循环”()
A、x=0
s=0
DoWhiles<=20
s=s+x
Loop
Printx
B、a=5
b=10
DoWhilea
a=a+1
b=b-1
Loop
Printa,b
教师:
(根据学生的反馈总结)
通过同学们给老师反馈回来的答案看,大家对DO循环语句的执行过程基本上没有太大问题,正确答案是B。
第二个练习中的A选项中虽然循环体中的s=s+x貌似对循环条件变量s的值进行了修改,但x的值始终是0,因此s的值并没有变化。
环节7:
总结提升,结束本课
(设计意图:
总结在实际问题中循环结构的实现过程,强调DO语句在实际生活中的应用。
)
教师:
到目前为止,同学们已经学习了两种循环语句FOR和DO,以后在遇到循环问题时,该如何运用这两个语句呢?
我们需要分析以下几点(课件展示内容)
1.循环次数:
次数已知——一般采用FOR语句实现
次数未知——一般采用DO语句实现
2.进行循环的条件:
FOR语句——由循环终值控制
DO语句——循环体中必须有改变循环条件的语句
3.循环内容:
需要重复执行的语句。
在日常生活中,次数未知的循环问题还有很多,比如:
现在的音乐播放器都有循环播放的功能,当点击“停止”时,循环结束;为保证信息安全,现在的手机卡密码都有输入次数的限制,当连续输入3次错误的密码时,SIM卡将被锁。
这些都可以用今天学习的知识解决。
(强调)程序为生活服务,希望同学们尝试将更多的程序应用到日常生活中。
【板书设计】
DO循环语句
格式:
DoWhile条件
循环体
Loop
【教学反思】
1.以问题为主线。
本课充分体现了新课程的理念,在问题解决中学习新知,在问题中提升能力。
为引起学生兴趣,本课中所选实例均来自于生活,使学生能够意识到所学知识的实用价值。
2.情景引入,恰到好处。
本课从折纸游戏出发,调动了学生学习的积极性。
通过“折纸游戏”复习巩固了FOR循环语句的知识,通过学生自己尝试“折纸超身高”的计算,发现FOR语句在实现次数未知循环上的局限性,由此引出了学习DO循环语句的必要性。
3.恰当引导,发散学生思维。
“算法与程序设计”涉及的知识范围非常广泛,其中尤其与数学知识联系紧密。
本课抓住了这一学科特点,在讲授DO语句的相关知识后,引导学生完成“折纸超身高”的计算,教给学生应用DO语句解决问题的思想。
巩固知识之后,由学生自主完成“植树问题”的求解,通过实际上课发现学生想到了多种解决问题的方法。
由此可见,发散学生思维,可以收到意想不到的效果。
4.不足之处
在学生进行折纸计算的过程中,我主要采用的是“半成品”教学法,即给出部分程序代码,由学生来填空。
这虽然降低了难度,但对于优秀生来讲无疑出现了“吃不饱”的想象,因此要考虑到对学生的分层教学。