《穷举法解决问题》教学设计 江苏省阜宁中学 钱如萍
一、教学目标分析 1.知识技术分析
a.熟悉穷举法在日常生活中问题解决的应用,并熟悉到利用运算机用穷举法解决问题的高效。
b.掌握穷举法设计程序的大体思想,并了解穷举法的适用范围及变量概念范围。
c.利用穷举法思想编程设计程序,解决问题,并能对它评论。 2.进程与方式
利用“百钱百鸡”问题的解决进程引导穷举法解决问题的方式与进程,并由此类问题(韩信点兵、水仙花数)引导学生对这一类问题抽象出具体的数学模型,运用穷举法能独立的实现程序。 3.情感态度与价值观
能对生活中穷举类问题利用运算机的高效处置能力形成主动运用编程思想解决,并能动手编写程序,实现问题有解决。 二、教学内容分析
教材选自教科版《算法与程序设计》选修第三章第二节的内容,本章内容是在前面两章对于编程的大体结构的基础上,对于实际生活中有代表性的某一类问题的具体算法的介绍,在本章第一节介绍了解析法以后,对于实际生活中列举类问题运用解析法不是太适合,所以引入第二种代表性的算法穷举法的介绍。
三、学生分析
高二学生对世界的熟悉正处于由感性到理性,由具体到抽象的熟悉,学生应掌握VB编程的大体知识(数据类型、大体结构、输入输出语句),并理解掌握解析法解决问题。学生对于列举类的问题用解析法来实现学生感到困惑,利用穷举法,因此对此类问题的归纳求解,学生应该掌握。 四、教学重难点
教学重点穷举法设计程序的大体思路,掌握利用穷举法编程解决问题。
教学难点,哪一类问题适合穷举法,穷举的范围和评价穷举效率的高低。 五、教学方式
归纳推理,任务驱动法 六、教学进程
教师观察学生对解析法的掌握情1 复习:二元一次方程的编程实现(见程序) 况 学生会回答出不同的解 如公鸡是0,母鸡是25只,小鸡是创设情景,提出:“百钱百鸡”问题让学生思考答案。 请思考这道题目能否只用解析法就能解决?为什么会有不同有解?这些解对不对?是怎么得出这些解的? 与小鸡的方程求解 再将公鸡数目设为1, 列出母鸡75只 公鸡是4只,母鸡是18只,小鸡是78只 先将公鸡数目设为0,列出母鸡2 与小鸡的方程求解 再将公鸡数目设为2, 列出母鸡与小鸡的方程求解 再将公鸡数目设为3,列出母鸡与小鸡的方程求解 …………………………………… 归纳导入“穷举法”概念:像上面求解“百钱百鸡”问题时,列出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的解答,就叫穷举法,也叫枚举法 穷举法的实现:请思考在计算机中是怎样求解“百钱3 百鸡”问题的? 1、问题求解时可能的搜索范围(所有鸡的数目是在0-100之间),利用嵌套循环结构实现 2、问题求解满足的条件:所有鸡的数目之和是100 所花钱数是100 提出任务:让学生自己动手实践,编程实现“百钱百4 鸡”问题的求解 穷举法的优化:将两组程序代码演示给学生,(详细代码请见附录:代码一、二,) 5 缩短了搜索范围,减少程序运行时间,优化程序 (特别提醒:程序的优化不是编写的代码的长短来衡量) 总结经验,拓展学习:请学生求解韩信点兵问题(假设士兵的数目在100到1000之间) 6 (详细请见附录:代码三) 请同学思考:能否优化该程序的设计?(见代码四)的编程情况 教师巡视,个别辅导,观察学生 让学生作比较,比较颜色不同的部分请思考为什么? 学生可能在100-1000之间每个数进行列举