算法(枚举)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
枚举算法(2课时)
一、教学目标
1.知识目标:(1)通过具体实例的求解,让学生了解什么是枚举算法;
(2)让学生亲身体验并理解枚举算法解决问题的基本思想;
(3)用流程图形式来表示枚举算法解决问题的思路;
(4)拓展:通过学习,解决日常实际问题;
2.能力目标:(1)“摆事实,讲道理”,通过具体例子分析,让学生理解如何用3步法来解决实际问题(提出问题——分析问题——解决问题);
(2)通过自主学习过程体验,合作探究画流程图的学习方式,提高学生的信息素养。
3.情感目标:(1)通过情景创设,激发学生学习兴趣;
(2)通过3步法,让学生更能结合其他学科的学习方法,激发学生善
于思考问题,解决问题的能力;
(3)通过小组合作,增进学生间的学习交流,培养合作能力,激发学生学习能动性;
二、重点与难点
1.重点:通过对涂抹数据的猜想,让学生理解枚举算法的思想,初步培养学生解决实际问题的能力;
2.难点:理解多种控制结构的嵌套;
枚举算法思想的理解与实现(流程图转化为代码并上机实践)
三、教学模式
1.教师教法:情景创设法、演示法、讨论法
2.学生学法:自主学习、合作探究学习
四、课前准备
1.上课环境:多媒体电脑房;
2.上课工具:幻灯片(枚举算法.ppt课件);辅助教学软件(flash动画,过程体验);
一件校服
五、教学过程
(一)、创设情景,引入问题(引导学生概括枚举算法的概念)(引入主题)
幻灯片展示:这是我的校服吗?
教师:各位同学,在我们上课之前,先请7位同学表演一段试衣情景!(要求:某一列的学生起立,由第1位同学开始试穿上衣,然后脱掉后传给第2位,
第2位试穿后传给第3位,依次……)
试衣结束后教师提出问题:同学们,请问,看了此情景后,你们觉得这件校服是谁的呢?
学生一答:是甲的,也可能是乙的。
学生二答:谁也不是,我觉得。
教师问:那么依照学生二回答,难道就找不到这件校服的主人了吗?
学生二补充:老师,你可以给其他同学再试试啊,也许有适合的哦。
学生们:对对对……
教师小结:很好,那么我们从刚才的小情景中可以看出,如果要找到一个问题的真正解,必须要把所有可能的解都先列出来,然后再一一进行检验,
看看是否有符合条件的。那么我们把这样的一种算法称为“枚举算法”(二)、学习新课(认知主题)
幻灯片展示:枚举算法:按问题本题的性质,一一列举出该问题所有可能的解,
并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若
是,就采纳这个解,否则就抛弃它。
教师问:请问各位同学,在看了枚举算法这个概念后,你们觉得这个算法的最关键的要求是什么?
学生三答:一一列举,检验
教师问:那么在列举过程中,我在刚才范了一个怎么样的错误呢?
学生们:你没列举出所有的解,只试了一部分同学啊……
教师小结:对极了,这个同学们一定要好好的记住,在列举的时候一定要遵循这样的一个规律:既不遗漏也不重复。
幻灯片展示:枚举算法的关键与注意点:一一列举、检验;不遗漏不重复(三)、学习新课(体验主题)
幻灯片展示:一份被涂抹的单据?
思考:这张单据上有一个5位数的编号,百位与十位数已经变得模糊
不清。但是知道这个5位数是37或67的倍数。
请你设计一个算法,要求找出所有满足条件的这些5位数?
教师:首先,我们一起来分析一下。(与学生互相讨论的过程)
第一步:被涂抹的是一个2位数:00、01、02、……99(一一列举)
第二步:这个数能被37或67整除(检验)
第三步:若满足,则输出,再判断下一个解;若不满足,则不输出,也是再判断下一个解
(这一步让学生掌握,该用循环结构来控制流程)
教师问:我们已经通过提出的问题,分析了问题,下面请一位同学上台来解决问题?(要求:流程图填空,我事先在课件中画好流程图,红色的框为
挖掉的空。见下图)
解释:变量j:控制循环次数;变量N:存储一个可能的解;C:计数器
学生四答:j<100;n=25006+j*10;判断n是37的倍数或是67的倍数
教师问:还有其他答案吗?
学生五答:将第一个判断框也可改为:j<=99
教师问:请问,我将J的初值改为0可以吗?为什么?
学生们:不可以,因为漏掉了一个可能值25006
教师问:如果我将涂抹的数据改为25*86,也就是百位数被涂抹,那么该如何修改此流程图呢?
学生六:将循环体改为n=25086+j*100
教师小结:大家都思考的很好,在分析问题的时候一定要先列出所有可能的解,不能遗漏不能重复,
在写取值范围的时候可以有多种格式,在考虑算法的时候一定要周密,尽可能使程序看
起来简单,执行起来速度快。
接下来,我再将此流程的整个流程过程给大家讲解一下,希望通过此使大家对如何画流
程图有一个更深的认识。
(四)、学习新课(巩固主题:小组合作探究方式)
幻灯片展示:画出统计1-1000自然数中3的倍数的个数的流程图(以同桌为小组共同合作完成)
学生活动:同桌共同分析问题,完成流程图
教师活动:让2组学生展示他们的流程图,并让全班同学来评论,若正确,则让此组同学谈谈他们是
如何来分析如何来解决问题的,若不正确,找出问题所在,共同解决,提出以后所要着重
注意的几个问题。
教师小结:如何画流程图?
(1)分析问题:找出关键字,确定变量
(2)确定该用哪种结构来控制语句,然后是先画yes,后画no,来完成流程图
(3)根据题意顺着流程重新走一遍yes和no,确保流程图的正确性
(4)不断改进流程图,使整个流程简单正确而且运行速度快
(五)、学习新课(拓展主题)
幻灯片展示:百钱买百鸡?(鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?)
学生过程:根据教师所提供的画流程图的方法,仔细分析问题,然后找到解决问题的方法。