课题 用穷举法解决问题的基本过程 我校选用的是广东教育出版社的《算法与程序设计》,课本在介绍穷举法时用的是一个求数值的例子,这样引入问题,不易引起学生的兴趣。我觉得应该尽量使用趣味性教学手段,将课堂气氛活动起来,激发学生的学习兴趣,才能取得较好的教学效果,所以,我决定不完全按照教材的教学思路,采用看视频、演示暴力破解例子、解决经典问题等方法,进行本节课的教学。 教材分析 本节教学的对象是高二学生,他们已经具备一定的逻辑思维、分析问题的能力,同时,通过前几个章节的学习与实践,学生已经历了用计算机解决问题的过程与步骤,学会了对计算机程序进行调试,并掌握了顺序、循环、条件三种程序结构,为本节内容的学习提供了良好的基础。前一节的学习,学生掌握了如何用解析法设计程序,但现实生活中也有很多问题往往无法用解析法找到答案,这时就需要使用计算机来帮助我们逐个列举出可能的情况,从而引出本课内容 —— “穷举法”。 学情分析 1、知识与技能 (1).掌握用穷举法设计程序的基本思路。 (2). 通过深入研究穷举的技巧,积累程序设计的经验,提升自己设计程序求解问题的教学目标能力。 2、过程与方法 本节以“百钱买百鸡问题”入手,由浅入深讲解了穷举算法的思路。 3、情感态度和价值观 通过本节内容的学习,学生对设计算法求解问题有了进一步的认识,对设计算法的步骤更加熟练,思考问题更加严密和有条理,程序编制和调试更有经验。 (一)、教学重点 重点和难点1、建立正确的数学模型,确定穷举方案。 2、根据命题确定可解空间(即变量的取值范围) 3、正确表达“符合条件”的判断 (二)、教学难点 1、如何确定穷举方案 2、如何利用穷举法解决实际问题 教学方法任务驱动法、探究法 一、创设情境,新课导入 1、 给学生播放破解密码的影视片段,让学生边看边思考:影片的主人公是用什么方法把密码破解开的。 2、 给学生发一张电子贺卡,但是电子贺卡设有密码,给学生提示,密码是两个数字,让学生自行将密码破解开。 密码,并回答是用什么方法破解3、 让学生思考:影片的主人公破解密码和我们破解贺卡的密码,两者所用的方法是什么?让学生自己总结并回答 从而引出穷举法的定义:穷举法,又叫枚举法,它将求解对象一一列举出来,然后逐一加以分析和处理,并验证结果是否满足给定的条件,列举完所有对象,问题将最终得到解决。 抛出经典题目:百钱买百鸡 首先,让学生讨论并回答:利用穷举法解决百钱买百鸡的基本思路是什么? 成功 教学过程 教师活动 观看影片,思考问题 按照老师给的提示,破解贺卡的学生活动 用播放视频和布置任务的方法引入新课,激发学生的学习兴趣和学习热情,把学生的注意力吸引到课堂教学中来 用“百钱买百鸡”的问设计意图 向学生讲解用穷举法解决问题的基本思路: 1、确定穷举对象、穷举对象范围和判定条件 2、一一列举可能的解,验证是否是可能的解 和学生一起探究用穷举法解决百钱买百鸡的具体过程 二、师生互动、逐步点拨、解决问题。 1、确定穷举对象 公鸡、母鸡和小鸡的个数 2、穷举对象的范围 通过学生讨论,赵学生回答: X、Y、Z可能值 根据题目意思可知: 0 ≤ X ≤ 100 0 ≤ Y ≤ 100 0 ≤ Z ≤ 100 根据题目意思上式可优化为: 0 ≤ X ≤ 100 / 5 0 ≤ y ≤ 100 / 3 学生讨论并回答:利用穷举法解决百钱买百鸡的基本思路是什么? 注意听讲,跟随着老师的思路思考 通过自己思考、和同学讨论,最终确定出穷举对象、穷举对象的范围以及判定条件 题把学生引入到本节课的学习中来,激发学生的求知欲和学习兴趣 根据学生解决具体问题来向学生渗透本节内容的重点:穷举法解决问题的基本思路: 0 ≤ Z ≤ 100 3判定条件 让学生思考、讨论,并回答,判定条件是什么:百钱买百鸡 进行穷举法解决问题的第二步,将穷举对象一一带入到判定条件中去,求出所有符合判定条件的解 通过课件的动画效果,和学生一起推断循环过程 为学生写程序设计代码做铺垫。 和学生一起画出程序流程图 跟着老师一起推断循环过程 让学生根据流程图,写程序代码 听取学生答案,并公布正确答案 以组为单位,交流探讨,画出算 调试程序,检测结果 三、灵活运用 请大家思考并回答问题: 1、 这个程序有什么地方可以改进? 法设计的流程图,并按照老师的要求回答问题 根据流程图,写程序代码 学生调试程序,检测结果 2、 这样改的理由是什么? 3、 程序如何写? 四、交流评价 两组程序代码,哪组要优于另一组?为什么? 五、归纳总结 1、 用穷举法解决问题的基本思路:列举出所有可能的情况,逐个判断有哪些是符合 问题所要求的条件,从而得到问题的全部解答。 2、 穷举法的使用范围 1、穷举范围是有限的,有明显的穷举范围 思考并回答问题 找出两组的代码的差别,回答老师提出的问题 加深学生对问题的理解,是学生能够灵活运用算法程序设计解决问题 通过知识总结,帮助学生将知识系统化、结构化,便于学生理解记忆 2、可以按着某种规则列举对象 3、一时找不到合适的解决途径 认真听讲,做笔记 五:布置作业 用穷举法解决鸡兔同笼的问题 记录下作业,课下认真完成
附表1:流程图
开 始
定义x,y,z
X<=20 ?
N
N
结 束
N
Y
Y<=33 ?
Y
Z<=99 ?
Y
百钱百鸡? Y
输出结果
N
附表2:
程序代码1: Dim x,y,z As Integer For x=0 To 20 For y=0 To 33 For z=0 To 99
If(x+y+z)=100 And (x*5+y*3+z/3)=100 Then Print“公鸡”;x Print“母鸡”;y Print“小鸡”;z End if
Next z Next y Next x
程序代码2: Dim x,y,z As Integer For x=0 To 20 For y=0 To 33 Z=100-x-y
If (x*5+y*3+z/3)=100 Then Print“公鸡”;x Print“母鸡”;y Print“小鸡”;z End if Next y Next x