欢迎来到天天文库
浏览记录
ID:12301718
大小:40.50 KB
页数:3页
时间:2018-07-16
《3.2用穷举法解决问题教案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、3.2用穷举法解决问题【教学目标】知识与技能①理解穷举法设计程序的基本思想。②学会使用穷举法解决现实生活、学习中所遇到的问题。过程与方法①通过大量的尝试性、探索性的活动,引导学生积极主动地完成学习任务。②体验穷举策略在穷举法中的地位和作用,并选择适当的穷举方案解决实际问题。情感态度及价值观①引导学生关注穷举法在社会生活中的应用,激发学生学习的热情。②培养学生健康使用信息技术的习惯。【教学重点】1.确定变量的取值范围。2.正确表达“符合条件”的判断。【教学难点】1.穷举法适合的范围。2.评价穷举效率的高低
2、。【教学方法】创设情景法、任务驱动法、多媒体演示法、练习实践法【教学手段】结合多媒体网络教学环境,构建学生自主探究的教学平台。教学过程:【导学】一、创设情境情境导入:平时我发现学生对腾讯软件十分感兴趣,因此我用腾讯软件的界面做了一个VB小程序:“猜猜密码”并且附有提示:“密码为1位数!”。(学生测试,尝试得出密码。)二、导学探究在学生猜对密码后,我又及时提出:“你知道你刚才运用的是什么算法吗?”最终提出穷举算法及其基本思想:穷举法:穷举法也叫枚举法、列举法,它是将求解对象一一列举出来,然后逐一加以分析、
3、处理,并验证结果是否满足给定的条件,穷举完所有对象,问题将最终得以解决。基本思想:把问题所有可能的解,逐一罗列出来并加以验证,若是问题的真正解,予以采纳,否则就舍弃,尝试下一个。3注意点:既不遗漏、也不重复关键点:⑴确定范围:列举该问题所有可能的解⑵验证条件:检验每个可能解是不是问题的真正解【点拨】以下面这个简单的问题做为课堂实例:例:某同学用自己的QQ号登录,可他记不清密码了,你能帮他找回密码吗?他的密码是一个5位数,67□□8,其中百位和十位上的数字他不记得了,但他还记得该数能够被78整除,也能被6
4、7整除。你能帮他设计一个算法求出该密码吗?问题分析:穷举的对象:确定范围:___________________________________确定条件:_________________________________________________________程序代码:DimaAsIntegerDimbAsIntegerFora=Forb=n=IfAndThenText1.Text=aText2.Text=bEndIfNextbNexta(教师演示,验证结果。学生上机验证。)【讨论】为什么很多系
5、统要限制输入密码的次数?我们应该如何设置自己的密码,为什么?(讲述信息技术可能带来的不安全因素,要求学生自觉遵守网络道德与法规。)【课堂练习】(编程解决问题)1.公元前5世纪,我国数学家张丘建在《算经》一书中提出了一个“百钱买百鸡问题”。问题如下:鸡翁一值钱3,鸡母一值钱2,鸡雏三值钱1。百钱买百鸡,问鸡翁、鸡母和鸡雏各几何?(公鸡三文钱一只,母鸡两文钱一只,小鸡一文钱三只。)现在,请你编一程序,帮他计划一下,怎么样买法,才能刚好用一百块钱买一百只鸡?代码一:PrivateSubCommand1_Cli
6、ck()DimxAsIntegerDimyAsIntegerDimzAsIntegerForx=0To100Fory=0To100Forz=0To1003If(x+y+z=100)And(x*3+y*2+z/3=100)ThenPrint"公鸡:";x;"只"Print"母鸡:";y;"只"Print"小鸡:";z;"只"EndIfNextzNextyNextxEndSub代码二(核心语句):Forx=0To33Fory=0To50z=100-x–yIf(x*3+y*2+z/3=100)And(zMod
7、3=0)ThenPrint"公鸡:";x;"只"Print"母鸡:";y;"只"Print"小鸡:";z;"只"EndIfNextyNextx【讨论】(1).对比以上两段代码,你觉得哪种更好,为什么?如何提高算法的效率?①减少循环的次数,通过缩小穷举范围。②减少循环嵌套的层数。对于穷举算法,加强约束条件,缩小穷举的范围,是程序优化的主要考虑方向。(2).穷举法的特点及优劣。优点:算法简单缺点:运行时所花费的时间长。2.“水仙花数问题”:水仙花数是指这样的一种三位数,它的个位、十位、百位的立方和等于它本身
8、。如153=13+53+33,求解出所有的“水仙花数”。板书设计用穷举法解决问题一、穷举法:注意点:关键点:例:问题一:范围条件问题二:教学反思:3
此文档下载收益归作者所有