《用穷举法解决问题》教学设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目能否只用解析法 就能解决?为什么 会有不同有解?这些 解对不对?是怎么得 出这些解的? 归纳导入“穷 举法”概念:像上面 求解“百钱百鸡”问 题时,列出所有可 能的情况,逐个判 断有哪些是符合问 题所要求的条件, 从而得到问题的解 答,就叫穷举法, 也叫枚举法 穷举法的实 现:请思考在计算 机中是怎样求解“百 3 钱百鸡”问题的? 1、问题求解 时可能的搜索范围 (所有鸡的数目是 在0-100之间),利 用嵌套循环结构实 现 2、问题求解 满足的条件:所有 鸡的数目之和是100 所花钱数是 100 提出任务:让 学生自己动手实 教师巡视,个别辅导,观察学生 4 践,编程实现“百钱 的编程情况 百鸡”问题的求解 穷举法的优 化:将两组程序代
End If Next i End Sub 代码四: Private Sub Command1_Click() Dim i As Integer For i= 100 To 1000 If i mod 21 =2 and i mod 5 =3 Then Print "该队官兵数可能为:" & i End If Next i End Sub 问题 设计程序,找出所有水仙花数。所谓水仙花数,是指一 个3位数,其各位数字的立方和等于该数字本身。例如,153是一个水仙 花数,因为153 = 13 + 53 +33。要求将水仙花数三个一行地显示在窗体 上,统计出个数,计算平均值。
《穷举法解决问题》教学设计
一、教学目标 1、知识与技能 ⑴了解穷举法的基本概念及用穷举法设计算法的基本过程。 ⑵分析建立正确的数学模型,归纳穷举法穷举技巧。 ⑶能够根据具体问题的要求,使用穷举法设计算法,编写程序求 解问题。 2、过程与方法 ⑴经历用穷举法求解问题的基本过程。 ⑵能通过实际问题的分析、求解过程,尝试归纳出利用穷举法解 决问题的思路和方法。 ⑶体验穷举策略在穷举法中的地位和作用,并选择适当的穷举方 案解决问题。 3、情感态度与价值观 ⑴引导学生关注穷举法在社会生活中的应用,进一步提高利用信 息技术解决实际问题的能力。 ⑵通过小组讨论与探究活动,提高团队合作能力,促进探究的热 情。 ⑶在解决问题的过程中进一步培养和提升学生的逻辑思维能力。 二、学情分析 本节内容的教学对象是高一年级学生,他们已经具备了一定的逻 辑思维、分析问题、表达思想等能力。同时,通过前几个章节的学习与 实践,学生已经历了用计算机解决问题的过程与步骤,学会了对计算机 程序进行调试,并掌握了顺序、循环、条件三种程序结构,为本节内容 的学习提供了良好的基础。前一节的学习,学生掌握了如何用解析法设 计程序,但现实生活中也有很多问题往往无法用解析法找到答案,这时 就需要使用计算机来帮助我们逐个列举出可能的情况,从而引出本课内 容 —— “穷举法”。 三、教材分析 1、教学内容: 本节内容是广东教育出版社出版的普通高中信息技术(选修1) 《算法与程序设计》教材第四章第2节的教学内容,包括:穷举法的基 本思路,用穷举法求解问题(第一课时),穷举法中穷举方案的选择等 (第二课时)。而本节课是穷举法的第一课时(用穷举法解决问题的基
本过程)。 2、重点难点分析: 教学重点: 用穷举法解题的基本思路和过程。 教学难点: 分析问题,建立数学模型,构造算法。 3、课时安排:1课时。 四、教学方法 主要教学方法:讲授法 演示法 任务驱动 情境教学 主要学习方法:小组协作 自主探究 五、教学环境 多媒体网络教室 投影仪 多媒体课件 一、教学目标分析 1.知识技能分析 a.认识穷举法在日常生活中问题解决的应用,并认识到利用计算机 用穷举法解决问题的高效。 b.掌握穷举法设计程序的基本思想,并了解穷举法的适用范围及 变量定义范围。 c.利用穷举法思想编程设计程序,解决问题,并能对它评论。 2.过程与方法 利用“百钱百鸡”问题的解决过程引导穷举法解决问题的方法与过 程,并由此类问题(韩信点兵、水仙花数)引导学生对这一类问题抽象 出具体的数学模型,运用穷举法能独立的实现程序。 3.情感态度与价值观 能对生活中穷举类问题利用计算机的高效处理能力形成主动运用 编程思想解决,并能动手编写程序,实现问题有解决。 二、教学内容分析 教材选自教科版《算法与程序设计》选修第三章第二节的内容, 本章内容是在前面两章对于编程的基本结构的基础上,对于实际生活中 有代表性的某一类问题的具体算法的介绍,在本章第一节介绍了解析法 之后,对于实际生活中列举类问题运用解析法不是太合适,所以引入第 二种代表性的算法穷举法的介绍。 三、学生分析 高二学生对世界的认识正处于由感性到理性,由具体到抽象的认 识,学生应掌握VB编程的基本知识(数据类型、基本结构、输入输出 语句),并理解掌握解析法解决问题。学生对于列举类的问题用解析法
Hale Waihona Puke Baidu
码演示给学生, (详细代码请见附 让学生作比较,比较颜色不同的 录:代码一、 部分请思考为什么? 二,) 5 缩短了搜索范 围,减少程序运行 时间,优化程序 (特别提醒: 程序的优化不是编 写的代码的长短来 衡量) 总结经验,拓 展学习:请学生求 解韩信点兵问题 (假设士兵的数目 在100到1000之间) (详细请见附 学生可能在100-1000之间每个数 录:代码三) 进行列举 请同学思考: 能否优化该程序的 6 设计?(见代码 四)分析问题:三 三之数余二,五五 之数余三,七七之 数余二,因为三七 都是余二,所以该 数肯定为二十一余 二和除五余三。 反 思: 穷举法在日常生活中有很多应用实例,如果单靠人脑,花费时间 比较烦琐,因此应学会利用计算机编程实现。本节内容教材采用的是分 组比赛,但程序比较复杂,大部分学生接受可能存在一定的困难,所以 采用的是在编程中比较经典的问题。在教学过程中,特别在确定穷举范 围时,要联系前面的知识,另外,穷举法的的优化是本节的重点,要让 学生在掌握穷举法的基础上,会对程序进行优化。
搭配方法不能和上次一样。结果“小神童”又很快给出了答案,宰相 暗暗称奇,想最后再试一次,谁知还是没有难倒“小神童”。请用穷 举法求解所有的组合方法。 教师活动:请同学位尝试用解析法求解 教师活动:解析法效率高,但是有些问题要总结出解析式很难,甚 至无法用解析法求解。 观察—发现—归纳—应用 边编写程序边提问 从循环次数上提高穷举法的效率 教师活动:大家能归纳出用穷举法解决问题的基本要求吗? 学生归纳:①确定穷举对象及搜索范围:用循环或循环嵌套实 现;②写出符合问题解的条件:用IF语句实现;③尽可能缩小搜索 范围,减少程序运行时间,提高程序的执行效率。 3、探究活动二: 如果一个3位数等于它的各位数字的立方和,则这个3位数称为“水仙 花”数。例如:153=1^3+5^3+3^3。试编程求出所有水仙花数。 学生分成两组完成程序(不同的思路) 哪个程序效率高? 探究活动三: 某同学用自己的QQ号登录,可他记不清密码了,你能帮他找回密 码吗?他的密码是一个5位数,67□□8,其中百位和十位上的数字他不 记得了,但他还记得该数能够被78整除,也能被67整除。你能帮他设计 一个算法求出该密码吗?希望大家能在学习完下面这个例子后就可以解 决这个问题。 暴力破解软件就是一个一个的尝试 怎样设置密码更安全? 设计意图:成功的教学不是强制,而是激发学生的学习兴趣,该导 入正是从学生感兴趣的事情着手的。 考试练习
《用穷举法解决问题》教学设计 教学分析 1.教学目标 知识与技能:了解什么是穷举法及其特点,以及用穷举法设计算法 的基本过程;能够根据具体问题的要求,使用穷举法设计算法。 过程和方法:运用观察、发现、归纳、应用的方法,发展学生的归 纳思维;培养学生独立探究与自主发现的学习能力。 情感态度与价值观:了解算法和程序设计在计算机解决问题过程中 的重要性;体验将算法转变为程序的过程,享受计算机解决问题的快 乐。 2.教学重点和难点 重点:用穷举算法解决问题的一般步骤;能根据具体问题的要求, 提高运用穷举算法解决问题的能力。 难点:通过观察、类比多种方式培养学生归纳思维。 教学过程 1. 创设情境激趣引入 教师活动:我这有一张交通银行的卡,很久没有使用了,里面还有 几十元钱,今天中午想到交行取款机把钱取出来,可密码记不清 了,连输两次,密码错误,不敢尝试了,为什么呢?第三次要再 错,取款机会把卡锁住,你们今天就见不到这张卡了,你们有没有 遇到过相同或类似的问题?(上网的时候)银行为什么要限制三次 输入,不让无限尝试下去? 学生思考,回答 教师活动:一个一个的尝试是不是很慢,也很辛苦?但是有了计算 机这个快速运算的工具,这就是一个很好的方法。(显示穷举法的 概念,提出学习目标) 2、探究活动一: 百钱百鸡问题: 相传我国南北朝时期,京城有个卖鸡的张姓老汉,他有一个儿子 非常聪明,尤其擅长算术,到十二三岁时已是远近闻名的“小神 童”了。当朝宰相听说后想试探个究竟,于是派仆人到张老汉的店里 打听鸡的价钱,张老汉告知:“公鸡五文钱一只,母鸡三文钱一只, 小鸡一文钱三只”。于是,仆人给他一百文钱,要求公鸡、母鸡、小 鸡都要,数量不多不少正好一百只,命他次日送到府上。这可难为 了张老汉,他怎么凑也凑不够这个数,只好问儿子。“小神童”不慌 不忙,掐指一算就给出了答案,第二天照数送到宰相府。宰相见难 不倒“小神童”,又让仆人给张老汉一百文钱,要求再买一百只鸡,
(注:所有原程序放在vb文件夹内)
附录: 代码一: Private Sub Command1_Click() Dim a, b, c As Integer Print "公鸡", "母鸡", "小鸡" For a = 0 To 100 For b = 0 To 100 c = 100 - a - b If a * 5 + b * 3 + c / 3 = 100 Then Print a, b, c End If Next b Next a End Sub 代码二: Private Sub Command1_Click() Dim a, b, c As Integer Print "公鸡", "母鸡", "小鸡" For a = 0 To 20 For b = 0 To 34 c = 100 - a - b If a * 5 + b * 3 + c / 3 = 100 Then Print a, b, c End If Next b Next a End Sub 代码三: Private Sub Command1_Click() Dim i As Integer For i= 100 To 1000 If i mod 3 =2 and i mod 5 =3 and i mod 7 =3 Then Print "该队官兵数可能为:" & i
来实现学生感到困惑,利用穷举法,因此对此类问题的归纳求解,学生 应该掌握。 四、教学重难点 教学重点穷举法设计程序的基本思路,掌握利用穷举法编程解决 问题。 教学难点,哪一类问题适合穷举法,穷举的范围以及评价穷举效 率的高低。 五、教学方法 归纳推理,任务驱动法 六、教学过程 复习:二元一 教师观察学生对解析法的掌握情 1 次方程的编程实现 况 (见程序) 创设情景,提 出:“百钱百鸡”问 题让学生思考答 案。 百元买百鸡: 用一百元钱买一百 只鸡。已知公鸡5 元/只,母鸡3元/只,小 学生会回答出不同的解 鸡1元/3只。 如公鸡是0,母鸡是25只,小鸡是75 分析: 只 这是个不定 公鸡是4只,母鸡是18只,小鸡是78 方程——三元一次 只 方程组问题(三个 变量,两个方程) 先将公鸡数目设为0,列出母鸡与 2 x+y+ 小鸡的方程求解 z=100 再将公鸡数目设为1, 列出母鸡与 5x+3y 小鸡的方程求解 +z/3=100 再将公鸡数目设为2, 列出母鸡与 设公鸡为x 小鸡的方程求解 只,母鸡为y只,小 再将公鸡数目设为3,列出母鸡 鸡为z只。 与小鸡的方程求解 …………………………………… 请思考这道题