(公开课)湖州十二中学校拓展课程 信息学奥赛 《游戏中的for循环》 课件+教案+素材

资源下载
  1. 二一教育资源

(公开课)湖州十二中学校拓展课程 信息学奥赛 《游戏中的for循环》 课件+教案+素材

资源简介

《游戏中的for循环》教学设计
一、教材分析
本节课是我校拓展课程信息学奥赛第三章《循环语句》的知识,该章节分为for语句、while语句、repeat—until语句、循环嵌套语句四个部分。循环语句是程序初学阶段的一个难点,更是一个重点内容,对后期的数组、子程序等内容有着重要的承上启下作用。
本节课是一节复习拓展课,将for循环以及for循环的嵌套放到一块儿教学,并尝试要求学生实地上机,在动手调试程序中加深对for循环语句及其嵌套的理解、进一步提高对本章节内容的应用能力。
二、学情分析
前几节的理论学习课学生已经学习了第三章《循环语句》所有内容,对循环语句有了一定的理解,然而循环语句理解上的难点使得学生对程序设计的兴趣有所降低,循环语句大计算量的特点更让部分学生望而却步。
因此,以游戏为学习情境,能极大提升学习兴趣,实地上机调试,理论结合实际,也更加切合基本的学习认知规律。
三、目标分析
1、知识与技能
熟练掌握for循环的应用;较熟练掌握for循环与其他句型的综合应用;初步掌握for循环嵌套的程序书写。
基本掌握for循环语句书写时注意的3个要点:循环变量的含义、循环作用的范围、变量的初始化。
2、过程与方法
根据《植物大战僵尸》游戏,设置若干情景,引导学生在每个情景中提取信息、设置变量、建立模型、编写代码从而解决问题。
3、情感态度与价值观
在调试代码过程中总结归纳代码书写的注意事项,培养学生严谨、科学的治学习惯。
在情景教学中,通过提取信息、设置变量、建立模型、编写代码这个解决实际问题的一般步骤,培养学生将实际问题抽象成数学模型的能力,逐渐渗透计算思维。
四、重难点分析
1、教学重点:for语句的综合应用。
2、教学难点:嵌套for语句的应用。
五、教学方法
采用情境教学法,以任务驱动模式达到教学效果。
六、教学过程
教学环节
教师活动
学生活动
设计意图
新课导入
由《植物大战僵尸》的图片、音频统计玩过该游戏的学生有多少?有没有同学想过游戏是如何通过程序来实现的?
引入本课的课题。

以游戏吸引学生兴趣,引导学生思考如何通过程序实现游戏的设计。
新课教授
【知识回顾】:简单for循环
情景一:植物的攻击数值是随机产生的,请输出10次攻击的数值。
展示游戏情景一及相应程序段,引导学生回顾for循环语句的执行过程
观察、思考、回顾已有知识点。
提炼for循环语句的两个注意点:
1、循环变量的含义;
2、循环作用的范围(该循环中需要做哪些事)。
【任务一】:for循环的综合运用
情景二:一只僵尸能否承受植物的10次攻击?
展示游戏情景二、要求学生在程序一的基础上设计程序二。
引导学生思考:根据需求分析需要添加哪些变量、需要在程序哪里添加判断语句?
边听边思考。
设计程序,学有余力同学帮助其他同学。

引导学生形成从问题中提取信息、分析问题、建立模型、编写程序从而解决问题的思路。
提炼for循环语句的第三个注意点:变量的初始化。
【任务二】:两重for循环语句
情景三:如果是两只僵尸进攻,只需将程序二的代码复制即可,若是12只僵尸依次进攻,植物们能阻挡几只?
引入多重循环语句。
思考。
设计程序、学有余力同学还可以思考老师给的拓展任务。
从一只僵尸受到10次攻击逐步加深到12只僵尸受到10次攻击,层层递进,攻克多重循环这一教学的难点。
继续引导学生用提取、分析、建模、编程这个解决问题的一般步骤来思考。
【拓展任务】:三重for循环语句
情景四(选做):7次攻击,每次12只僵尸,每个僵尸会受到10攻击,问7次进攻后谁会获胜?
学有余力的学生根据老师的提示进行适当探索。
设置提高任务,让“吃不饱”的学生“吃饱”。
课堂小结
引导学生总结循环语句的书写要点。
老师结合板书进行点评、小结。
多位学生表述自己的看法。
总结代码书写的注意事项,培养学生严谨、科学的治学习惯。
渗透将实际问题抽象成数学模型从而解决问题的计算思维思想。
引导学生了解我们目前学到的还只是初步,游戏的设计还需要设计方方面面的知识。
板书设计
课件8张PPT。 游戏中的for语句
疯狂的戴夫最近很烦恼,因为僵尸的围攻导致他不得不夜以继日的研究防御措施。在精确的计算了僵尸行进的速度后他发现,僵尸通过后院总计会受到10次攻击,这10次攻击可能来自不同的植物,所以攻击力也是随机的。为了更好的研究植物的攻击力,戴夫希望知道受到10次攻击的具体数值。Program PlantsVsZombies_1; //代码一
var i, a : integer;
begin
① randomize; //初始化随机函数
② for i := 1 to 10 do
③ a := random(100); //取0~99之间的随机值
④ write(a : 5);
end.Program PlantsVsZombies_1; //代码一
var i, a : integer;
begin
① randomize; //初始化随机函数
② for i := 1 to 10 do begin
③ a := random(100); //取0~99之间的随机值
④ write(a : 5);
⑤ end;
end.游戏中的for语句循环变量循环作用的范围
僵尸博士派出了先锋部队——以防御力强著称的橄榄球僵尸一只(生命值为500)。戴夫已经焦头烂额了,急需睡眠的他只好求助你:在代码一的基础上,设计一个判断程序,输出10次攻击值以及总和,并判断植物攻击能否阻止橄榄球僵尸,能则输出yes,否则输出oh my god!游戏中的for语句
显然,戴夫低估了僵尸博士攻占后院的决心,因为他发现每天夜幕降临(晚上6点钟)直到第二天日出(早上6点钟)这12个小时中,每个小时都会有一只橄榄球僵尸试图闯过植物防线。智商捉急的戴夫不得不再次求助于你:设计一个程序,评估他的植物防线一晚上能抵挡多少只僵尸?游戏中的for语句
拓展任务:
气急败坏的戴夫和无计可施的僵尸博士最终商定双方来一场公平的决斗,戴夫输了就把后院割让给僵尸,僵尸输了将再也不来冒犯戴夫。
决斗共7场,第一场放在周一晚上,第二场放在周二晚上,依次类推,7场4胜。
每一个晚上僵尸博士都排出12名橄榄球僵尸出战,戴夫的植物防线若能抵挡超过一半的僵尸,当晚就算戴夫赢,反之,当晚算僵尸博士赢。
请你设计程序解决该问题。游戏中的for语句
·循环变量的含义游戏中的for语句·循环作用的范围·变量的初始化 Thank You!

展开更多......

收起↑

资源列表