资源简介 一、 教学目标1.知识与技能 ⑴了解穷举法的特点,掌握用穷举法设计算法的要求,理解用穷举法设计程序的基本思路。⑵学会编写程序实现穷举法 2.过程与方法 ⑴经历用穷举法求解问题的基本过程。 ⑵在学习过程中,发现穷举法的规律,并把它运用实际问题的解决中去。3.情感态度与价值观 ⑴通过学习穷举法,树立正确使用信息技术的道德观,并形成反思的意识。 ⑵引导学生关注穷举法在社会生活中的应用,激发学生学习的热情。 二、教学重点与难点教学重点:1、根据问题确定变量的取值范围。2、正确表达“符合条件”的判断。教学难点:1、恰当安排穷举的方式,使得算法的效率更高。2、编程实现穷举法。三、课时安排:1课时。 四、教学过程:(见下页)环节教师活动学生活动设计意图激趣导入播放《终结者2》影片片断:主人公用解码器破解密码的场面:在电影中我们经常看到这样的镜头,这似乎距离我们很遥远。其实,在我们的生活中,你是否有过密码被盗的经历呢?观看影片,积极思考,在看片的过程中体会穷举法的基本思路。学生口答:QQ密码被盗。通过学生喜欢的影片将学生引入到课堂学习的环境中来,激发学生的学习兴趣。新知导授一、穷举法的概念下面请大家打开桌面上的2位数破解密码的程序:程序界面如下图:请学生运行该程序,破解密码。(每排为一组,看谁破解的快)请破解出密码的学生介绍经验:一个一个的去尝试。教师总结:(投影)这种将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有对象,问题将最终得以解决的方法,称为穷举法。任务布置一:如果密码是5位数,我们还能用刚才的方法破解吗?教师总结:用人工计算工作量大,很耗时,可由计算机完成。分析问题:密码范围是10000—99999。算法实现:设a为设定的5位数密码,I为输入的破解密码。穷举过程如下:I取初值10000测试i是否等于a,若是,则输出密码正确,若不是,将I加1,反复执行(2),直到密码正确后退出。教师引导学生进行代码实现:从10000—99999穷举可用循环实现判断a 是否等于I可用if 语句实现。小组讨论破解方法与技巧,分工破解介绍破解经验与技巧小组讨论:学生根据刚才的经验,思考是在10000—99999之间尝试,很耗时学生运行桌面上的5位数密码破解程序,体验计算机破解密码小组间通过竞争和协作使得每个学生都积极思考,参与问题解决引导学生利用计算机来解决问题让学生亲身体验,消除对密码破解程序神秘感规律总结利用穷举法解决问题的基本思路:依据题目的已知条件,确定答案的大致范围,在此范围内对所有可能的情况,逐一验证,直到全部情况验证完,若某种情况经验符合条件则输出结果,否则继续查找,直到全部情况查询完毕为止。通过讨论,尝试归纳总结训练学生的逻辑思维习惯,培养学生总结规律的能力。合作探究任务设置二: 用穷举法找出所有的“水仙花数”。说明:水仙花数是一个三位数,它的各位数的立方和等于该数本身。如:153=13+53+33教师发送半成品代码,要求学生填空:Dim x, y, z As IntegerFor x = __ To 9For y = __ To 9For z = __To 9If ______________ = x ^ 3 + y ^ 3 + z ^ 3 ThenPrint x ; y ; zEnd IfNext zNext yNext x学生根据实践情况,小组讨论合作探究在课堂上,通过师生之间,生生之间的协作、交流,培养学生的合作意识、互助精神、人际沟通能力。拓展思考利用不同的思路编写程序,穷举出所有的 “水仙花数”课下思考 探究合作强化训练,深化理解,达到举一反三的目的课堂总结(1)问题解的可能搜索的范围:用循环或循环嵌套结构实现;(2)写出符合问题解的条件;根据本节课的学习经验,总结用穷举法解决问题的要领。通过知识总结,帮助学生将知识系统化,便于学生理解记忆。课件16张PPT。-----穷举法设计程序算法与程序设计欣赏一段影片请同学们下载共享空间下的2位破解密码的程序,运行改程序,破解密码。程序界面如下图 这种将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有对象,问题将最终得以解决的方法,称为穷举法也叫枚举法、列举法穷举法●了解穷举法的特点,掌握用穷举法设计算法 的基本要求● 学会编写程序实现穷举法学习目标:●使用哪种编程工具来编写程序? ●高级语言 Visual Basic 如果密码是5位数,我们还能用刚才的方法破解吗? 分析问题:密码范围是10000—99999。 算法实现:设a为设定的5位数密码,i为循环变量。穷举过程如下:I 取初值10000 终止值取99999测试i是否等于a,若是,则输出密码正确,若不是,将i加1,继续测试执行 直到密码正确后退出。任务一:密码是一个5位数(第一位不为0) 代码实现:● 从10000—99999穷举可用循环实现● 判断a 是否等于i可用if语句实现。Private Sub Command1_Click()Dim a as longDim i as long a = Val(Text1.Text) For i = To _______ If Then _______ End If Next iEnd Sub●文件保存为.exe格式(位置桌面)●界面整洁、美观 设计界面: ●在窗体中添加一个命令按钮 对象、2个文本框对象、一 个标签对象要求:Private Sub Command1_Click()Dim a as longDim i as long a = Val(Text1.Text) For i = To _______ If Then _______ End If Next iEnd Sub利用穷举法解决问题的思路: 依据题目的已知条件,确定答案的大致范围,在此范围内对所有可能的情况,逐一验证,直到全部情况验证完,若某种情况经验符合条件则输出结果,否则继续查找,直到全部情况查询完毕为止。Dim x, y, z As IntegerFor x = __ To 9 For y = __ To 9 For z = __To 9 If ______________ = x ^ 3 + y ^ 3 + z ^ 3 Then Print x ; y ; z End If Next z Next yNext x任务二:用穷举法找出所有的“水仙花数”。说明:水仙花数是一个三位数,它的各位数的立方和等于该数本身。如:153=1^3+5^3+3^3● 问题解的可能搜索的范围:用循环或循环嵌套 结构实现;●写出符合问题解的条件;课堂总结●利用不同的思路编写程序,穷举出所有的 “水仙花数”拓展思考Dim x, y, z, a As Integer For a=100 to 999 x= y= z= if a=x^3+y^3+z^3 then print a End if Next a思考,完善程序?谢谢大家2019/3/26完善穷举水仙花数半成品程序:Dim x, y, z As IntegerFor x = __ To 9For y = __ To 9For z = __To 9If ______________ = x ^ 3 + y ^ 3 + z ^ 3 ThenPrint x ; y ; zEnd IfNext zNext yNext x拓展思考练习题:Dim x, y, z, a As Integer For a=100 to 999 x= y= z= if a=x^3+y^3+z^3 then print a End if Next a 展开更多...... 收起↑ 资源列表 37012613891460684008.wmv 穷举法设计程序.doc 穷举法设计程序.ppt 穷举法设计程序测试.doc