山东省郯城第三中学初中信息技术 1.6 枚举算法教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.6 枚举算法

《枚举算法》一课的重点是让学生理解枚举算法思想,并用其解决生活中的问题。在前面的教学中,学生已理解了算法的特点,学习了算法的三种表示方式,对于顺序、选择、循环三种基本控制结构已经有了知识基础,也能阅读一些简单的程序段。对于学生来说,枚举算法思想比较容易掌握,难点在于如何将枚举算法思想转变成具体的流程图,又如何转变成具体的VB程序。教材中以“单据涂抹”和“包装问题”两个实例引入并展开利用枚举算法解决问题的一般过程。通过上一学年的教学实践,感觉学生对这两个实例的学习兴趣并不高,教学效果也不很理想。本课设计打破教材编写的顺序,将教材中第二章的算法与第五章的程序结合起来组织教学,通过理论结合实践,让学生更容易理解各种算法的基本设计思想,体验编写程序的成功感受。

一、教学目标

知识与技能:理解枚举算法的基本思想;学会用流程图形式表示枚举算法;理解由流程图翻译成的VB代码,能上机成功调试。

过程与方法:通过具体案例分析,理解如何用三步法来解决实际问题;学会使用枚举算法解决简单问题。

情感、态度与价值观:感受枚举算法在日常生活中的广泛应用,培养对算法的兴趣;通过小组合作增进学习交流,培养合作能力。

二、教学重点与难点

重点:让学生理解枚举算法;培养学生运用三步法来解决实际问题的能力。

难点:让学生理解多种控制结构的嵌套;让学生能够将枚举算法思想转化为流程图,再将流程图转化为代码并上机实践。

三、设计思想

算法课一般与枯燥、晦涩、难懂等字眼联系在一起,难以激发学生的兴趣。如何打破这种局面,让学生自主学习算法呢?

本课的设计除了遵循算法“自顶而下,逐步求精”的思想之外,新意之处在于,根据电影情节别出心裁地创设了一个“男女主角辨认模糊电话号码”的情境,在故事中不露痕迹地渗透了教学内容。让学生融入电影情节,体验角色的情感,不知不觉地学会枚举算法,完成教学任务。

四、课前准备

向左走向右走》电影片段、枚举算法的VB演示程序、多媒体网络机房

五、教学过程

1.创设情境认知主题

课前播放电影片段。

师:这是哪部电影中的画面?

生:《向左走向右走》。

学生简述电影的主要情节。

师:这部电影中讲述了金城武饰演的一位小提琴家和梁咏琪饰演的一位翻译家之间纯美的爱情故事。两人居住在同一幢公寓,中间只隔了一堵墙,却因为两人彼此习惯不同,一个习惯向左走,一个习惯向右走,总是不断擦身而过,不曾相遇。电梯一上一下、月台上分站两边……终于有一天,两人同时来到公园,在水池旁相遇了。但是天意弄人,两人在雨中匆忙交换的电话号码在湿透的纸上模糊一片。

教师展示模糊的电话号码(如图1)。

师:如果你是电影中的主人公,这时你该如何找到对方的电话号码呢?

教师可以请一位姓“金”的男生或姓“梁”的女生回答。

生:像找回密码箱的密码一样,一个个按顺序去拨打,如果是对方接的,就说明找对了。

师:很好,“金”同学。如果换作你,一定能找到对方。从中可以看出,如果要找到一个问题真正的解,必须把所有可能的解都列出来,再一一进行检验,找到符合条件的解。刚才大家找电话号码的方法,可以称为“枚举算法”。枚举算法的基本思想是:按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能的解是否真正的解,若是,就采纳,否则就放弃。

师:通过对枚举算法思想的理解,你们觉得该算法的关键是什么?

生:一一列举,逐一检验。

师:电影中,男女主角都尝试去拨了很多电话号码,为什么没有成功呢?

生:并没有一一拨打所有可能的电话号码。

师:对极了。在列举的时候一定要遵循“一一列举、逐一检验”的规律,做到既不遗漏也不重复。

设计意图:引导学生融入电影情境中,想象自己就是故事的主角,急切地想要找到对方的电话号码。教师顺水推舟,让学生海绵吸水般地学习枚举算法的相关知识。

2.逐步深入体验主题

师:这么近的两个有情人不能相见,编剧也太整人了。今天,老师也来当一回编剧,把电话号码重新编一下,大家来试试看能否找出对方的电话号码。我们先一起来看看怎么找金城武的号码。

金城武的电话号码(22764**5)可以看成是一个8位数的编号,其百位数和十位数处已经变得模糊不清了。如果还知道这个8位数是13的倍数。现在要找出所有满足这个条件的8位数,并统计其个数。

师:首先,按照枚举算法的关键步骤一起来分析。步骤一是“一一列举”。那百位和十位上的数字有哪些可能?

生:00、01、02……99。

师:还应该怎么做?

生:这些数乘以10再加到22764005这个数字上。

师:将百位和十位的数用一个变量J来表示。让变量J依次取0~99这100个不同的值,接着给J的每个确定的值乘以10加上22764005。这样,就能形成一个可能解(如图2)。

师:步骤二是“逐一检验”。那检验的条件是什么?

生:这个8位数是13的倍数。

师:怎么来表示?

生:用13整除,余数为零,即N Mod 13=0,

师:很好。用这种方法就一定能找到金城武的号码,而且肯定不会漏下。

设计意图:修改电影情节中的号码,使之符合教学要求,也符合生活情境。通过寻找号码这个过程,使学生基本能理解用单层循环枚举算法解决问题的一般过程。

教师将解决问题的过程分步转化成流程图(如图3)。

J为循环变量,其作用如下:(1)控制循环是否继续进行,记录已经执行的循环的次数。(2)依次产生应填在百位和十位上的数值。

变量N用来存储一个可能解。

师:判断框中的条件为J<100,还有其他答案吗?

生:J<=99。

师:将J的初始值改为1可以吗?为什么?

生:不可以。因为漏掉了一个可能值22764005。

师:在分析问题时一定要列出所有可能解,既不遗漏,也不重复。取值范围可能有多种表示,考虑一定要周密,尽可能使程序简单、执行快速。

设计意图:将自然语言一步步转化成流程图,并分析所使用的变量,为把流程图转变为程序代码做准备。

教师展示将流程图转化成程序代码的过程。

3.温故知新拓展主题

师:金城武的电话是找到了,梁咏琪的电话号码还没有解决呢。我们一起再来看看怎样找梁咏琪的号码吧!

已经知道女主角的电话号码(2276*2*5)也是一个8位数的编号,其千位数和十位数处已经变得模糊不清,但这个8位数也是13的倍数。现在要找出所有满足这些条件的8位数,并统计其个数。

学生思考,邻桌讨论。

教师根据两个关键步骤,逐步引导学生解决问题。

师:步骤一是“一一列举”。千位与十位数字模糊,列举时需用两个变量i和j来表示。i和j怎么变化呢?

相关文档
最新文档