1枚举算法及其程序实现教学设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

枚举算法及其程序实现教学设计

课程标准

教学目标

枚举算法及其程序实现

教材内容:3.3.2枚举算法及其程序实现

适应的课程标准:

1.7掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题,体验程序设计的基本流程,感受算法的效率,掌握程序调试与运行的方法。

教学目标:

●理解枚举算法的思想,能用枚举算法来设计算法解决简单问题。

●编写程序来实现枚举算法。

●通过解决实际问题,编写实用性程序,培养编程解决问题的能力。

指向的核心素养:

●信息意识:能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息;在合作解决问题的过程中,愿意与团队成员共享信息,实现信息的更大价值。

●计算思维:针对给定的任务进行需求分析,明确需要解决的关键问题;能提取问题的基本特征,进行抽象处理,并用形式化的方法表述问题。运用基本算法设计解决问题的方案,能使用编程语言或其他数字化工具实现这一方案。

学习环境:有教学控制软件的多媒体机房,装有Python3.x编程环境和班级讨论区。

建议课时:1课时

教学活动设计

教学环节

教学过程

设计意图

情境导入

小明不小心把寝室门钥匙丢了,他去寝室管理员那里去找钥匙开门。寝室管理员那里总共有10把钥匙,但钥匙上的寝室编号已经模糊不清了,请问小明如何才能找出能开自己寝室门的钥匙?

这是生活中经常遇到的问题,只能一把一把钥匙试过来,直到找到能打开门的钥匙。

从生活实际问题中体会枚举思想的应用,顺利过渡到使用枚举算法编程解决问题,有效地调动了学生主动探究学习的积极性。

学生活动

活动1:编程推算单据中被涂抹数字。

有一张单据上有一个5位数的编号n,如图所示,其百位数和十位数处已经变得模糊不清,但是知道这个5位数是23的倍数。现要设计一个算法,找出所有满足这些条件的5位数,并统计这些5位数的个数。

????????

算法分析:

这个5位正整数n中的百位和十位数有00、01、02、…、97、98、99共100种可能,分别填入,从而产生出n的全部可能解:25006、25016、25026、…、25986、25996。

使用枚举算法解决问题时,必须逐一地给出所有可能解并对它们逐一进行检验,既不应遗漏任何一个可能解,也不应重复地产生和检验可能解。因而将每个可能解n逐一进行判断是否是一个真正解,即n是否能被23整除。若n是真正解,则输出n的值,并在计数器c中加上1,表示找到了一个真正解。

活动2:编程推算单据中被涂抹数字。

有一张单据上有一个5位数的编号n,如图1所示,其千位数和十位数处已经变得模糊不清,但是知道这个5位数是23的倍数。现要设计一个算法,找出所有满足这些条件的5位数,并统计这些5位数的个数。

算法分析:

同样是推算被覆盖的数字,本题与上一题的区别在于,上一题被覆盖的两个数字连在一起,只要一重循环枚举00到99共100种可能就行了。但是本题的两个数字是分开的,需要分别枚举千位和十位上的数字,所以要双重循环。

可以分别用i和j来表示两个被覆盖的数字,i从0到9,j从0到9,双重循环逐一检验每一个可能的解。

设计实际而有趣的问题情境,引导学生围绕枚举算法的思想精髓“列举”和“筛选”来思考问题,从而落实教学重点,让学生充分领略到计算机自动化处理的优势。

相同的问题背景,不同的解题思路,从枚举一个变量到枚举两个变量,从一重循环到二重循环,逐步增大问题难度,让学生体会枚举算法在不同维度的应用,实现思维的跃升。

自主学习

学生小组合作讨论并实践,编程判断某个信息点(300个像素)是否被填涂。

教师引导学生自主阅读教材,并思考以下问题:

1.如何表示某个像素点的颜色?

2.如何存储300个像素点的颜色信息?

3.如何判断某个像素点的黑边颜色?

4.如何统计黑色像素点的数量?

5.如何判断该信息点是否被填涂?

6.能否使用模块化编程思想把该功能设计成一个函数?

通过项目学习,体验真实情境中程序产品的孕育与产生,理解计算机解决问题的工作模式。从一个像素颜色的判定,升级到完整判定某信息点有没被填涂的问题上来,进一步理解枚举算法的特征,体会用简单算法解决复杂问题的成就感。

课堂小结

1.总结枚举算法的基本思想是:

按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能的解是否真正的解,若是,就采纳,否则就放弃。

2.总结枚举算法解题过程:

(1)逐一列举可能的解的范围。这个过程用循环结构实现。

(2)对每一个列举可能的解进行检验,判断是否为真正的解。这个过程用分支结构实现。

3.总结枚举算法的优缺点和注意事项:

优点:是对现实生活的直接描述,易于理解,容易证明算法的正确性。

缺点:枚举算法需要考察多个变量的大量状态,因此效率比较低。

注意事项:要做到

文档评论(0)

xiaochuichui + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档