《对分查找及其算法实现》教学设计
- 格式:doc
- 大小:1.43 MB
- 文档页数:7
对分查找算法及程序实现一、设计思想对分查找是计算机科学中的一个基础算法。
对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。
本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。
为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。
二、教材分析本课的课程标准内容:(一)计算机解决问题的基本过程(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。
(三)算法与问题解决例举 C 查找、排序与问题解决(2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。
本课的《学科教学指导意见》内容:基本要求:1.初步掌握对分查找算法。
2.初步掌握对分查找算法的程序实现。
教材内容:第二章算法实例2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。
从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。
对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。
三、学情分析学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。
《对分查找算法的程序实现》一、案例主题:浙江教育出版社《算法与程序设计》(选修),《对分查找算法的程序实现》二、背景材料:(一)教学内容分析:1.对分查找算法是《算法与程序设计》(选修)《5.4节查找算法的程序实现》中的内容,是结合流程图实现程序的课型。
本课内容是选修教材中对所学语句结构和代码理解的一个总结性应用,具有很强的实用性。
2.本课内容应用性较强,具有一定的难度,体现在对流程图理解和代码实现的过程中,但应用丰富,拓展性强,有很高的研究价值。
(二)学生分析:通过前面一个月算法的学习,学生已经逐步熟悉visual basic6.0的编程环境,掌握了顺序结构、分支结构、循环语句的用法,在前期教学中学生已经初步了解算法基础及算法表示,抽象思维相对较好。
对分查找的算法对学生来说比较抽象,学生能否清晰的想象比较关键,所以学习难度比较大,需要教师合理的引导帮助其来解决问题。
本课中学生可能会出现的情况:1.掌握三种基本结构,但是在综合思想算法上缺乏一定的掌握度。
解决策略:先介绍对分查找思想,然后再引入流程图和程序。
2.刚学过顺序查找,给他们的感觉是实现简单,容易思想上放松。
解决策略:要让学生从根本上区别顺序查找,以免混淆算法。
3.因为对分查找比较抽象,如果直接以代码的形式出现,学生会难以理解和接受。
解决策略:以生动形象的例子进行导入然后再进行教学,提高课堂效率。
三、教学设计:(一)教学设计思想:对分查找在整个选修教材中是一个重点和难点,本课以生动的实例做为课堂导入,强调教学重点,以动态的指针演示,让算法思路更具体化,并且逐个击破难点并得以程序实现,以半成品加工策略提高课堂效率。
本课主要通过“思维导图”的形式和任务驱动等教学方式引导学生自主探究探索、解决问题,通过小组同学的探讨实现对本课知识的掌握,教师通过合理的引导帮助学生理解,创设学生自主和互助学习的良好气氛,以达到理解对分查找算法和实现相应程序的目标。
对分查找算法教案(5篇)第一篇:对分查找算法教案对分查找算法教案一、设计思想对分查找是计算机科学中的一个基础算法。
对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。
本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。
为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。
二、教材分析本课的课程标准内容:(一)计算机解决问题的基本过程(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。
(三)算法与问题解决例举 C 查找、排序与问题解决(2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。
本课的《学科教学指导意见》内容:基本要求:1.初步掌握对分查找算法。
2.初步掌握对分查找算法的程序实现。
教材内容:第二章算法实例 2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。
从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。
对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。
三、学情分析学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。
《对分查找及其算法实现》教学设计湖北省巴东县第一高级中学 刘少银 一、教材学情分析 本次课是浙江版高中信息技术选修教材《算法与程序设计》第二章算法实例第四节查找中的一部分内容。
由于教材体系不适合校本实际,我们在教学过程中对教材体系作了如下调整。
讲授顺序:第一章 算法和算法的表示、第三章 面向对象的程序设计的基本知识、第四章 VB程序设计初步、第二章算法实例,第五章 算法实例的程序实现穿插在相关内容教学中完成。
因此在前期教学中学生已经初步掌握了算法基础及算法表示,VB程序设计初步等。
本次课是让学生掌握对分查找的思想及算法的实现。
二、教学目标 知识与技能:理解对分查找的基本含义、方法,理解并能画出对分查找的流程图; 过程与方法:通过案例分析、直观观察,增强分析问题和解决问题的能力; 情感、态度与价值观:感受信息技术与现实生活的关联,激发对信息技术学科的求知欲,培养主动学习和使用信息技术的意识;养成科学的学习态度,不迷信书本、不迷信权威。
三、教学重难点 教学重点:对分查找的基本方法及注意事项; 教学难点:对分查找算法的实现。
四、教学策略 ·以"猜数"游戏导入,引入对分查找的概念; ·师生讨论、生生讨论、生生互助;分析、归纳、总结,理解并掌握对分查找的基本思想; ·采用分类研究、分享成果、课后练习等学习方法,理解对分查找方法及基本主要特征; ·采用自然评价、师生评价、生生评价等形式对学习进行过程性评价。
五、教学过程 1.游戏激趣,释疑对分查找 (三个程序图片)(初始界面) (人工猜数界面) (程序猜数界面) 准备:几张白纸,一支记号笔。
启动猜数程序。
师:同学们好!大家看到前面的程序了吗?它是一个什么程序呢? 同学:猜数游戏程序。
师:对,这是我用VB针对李泳主持的"幸运52"中猜商品价格环节开发的一款程序,我先来说说针对主持人的部分:当李泳宣布商品的价格范围时,比如10000元内,猜商品价格的人就可以在猜数范围栏起始栏填上"0",终至栏填"10000",然后再将鼠标移到猜数栏中单击,程序即提示:"准备!倒计时30秒",当单击提示处,猜价格倒计时开始,猜价格人即可在猜数栏上填上所猜价格的数值,然后根据主持人的提示,选择"不对"重新填写商品价格或选择"正确"让所猜价格在"猜得结果"栏内显示正确结果并停止计时,提示栏中即显示"您猜了M次,对了,恭喜您"。
《对分查找算法的程序实现》一、案例主题:浙江教育出版社《算法与程序设计》(选修),《对分查找算法的程序实现》二、背景材料:(一)教学内容分析:1.对分查找算法是《算法与程序设计》(选修)《5.4节查找算法的程序实现》中的内容,是结合流程图实现程序的课型。
本课内容是选修教材中对所学语句结构和代码理解的一个总结性应用,具有很强的实用性。
2.本课内容应用性较强,具有一定的难度,体现在对流程图理解和代码实现的过程中,但应用丰富,拓展性强,有很高的研究价值。
(二)学生分析:通过前面一个月算法的学习,学生已经逐步熟悉visual basic6.0的编程环境,掌握了顺序结构、分支结构、循环语句的用法,在前期教学中学生已经初步了解算法基础及算法表示,抽象思维相对较好。
对分查找的算法对学生来说比较抽象,学生能否清晰的想象比较关键,所以学习难度比较大,需要教师合理的引导帮助其来解决问题。
本课中学生可能会出现的情况:1.掌握三种基本结构,但是在综合思想算法上缺乏一定的掌握度。
解决策略:先介绍对分查找思想,然后再引入流程图和程序。
2.刚学过顺序查找,给他们的感觉是实现简单,容易思想上放松。
解决策略:要让学生从根本上区别顺序查找,以免混淆算法。
3.因为对分查找比较抽象,如果直接以代码的形式出现,学生会难以理解和接受。
解决策略:以生动形象的例子进行导入然后再进行教学,提高课堂效率。
三、教学设计:(一)教学设计思想:对分查找在整个选修教材中是一个重点和难点,本课以生动的实例做为课堂导入,强调教学重点,以动态的指针演示,让算法思路更具体化,并且逐个击破难点并得以程序实现,以半成品加工策略提高课堂效率。
本课主要通过“思维导图”的形式和任务驱动等教学方式引导学生自主探究探索、解决问题,通过小组同学的探讨实现对本课知识的掌握,教师通过合理的引导帮助学生理解,创设学生自主和互助学习的良好气氛,以达到理解对分查找算法和实现相应程序的目标。
对分查找算法及程序实现一、设计思想对分查找是计算机科学中的一个基础算法。
对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。
本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。
为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。
二、教材分析本课的课程标准内容:(一)计算机解决问题的基本过程()结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。
(三)算法与问题解决例举查找、排序与问题解决()通过实例,掌握使用数据查找算法设计程序解决问题的方法。
本课的《学科教学指导意见》内容:基本要求:.初步掌握对分查找算法。
.初步掌握对分查找算法的程序实现。
教材内容:第二章算法实例对分查找和第五章查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。
从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。
对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。
三、学情分析学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。
四、教学目标知识与技能:理解对分查找的概念和特点,通过分步解析获取对分查找的解题结构,初步掌握对分查找算法的程序实现。
浙教版高一《算法与程序设计》——“对分查找” 教课方案(2课时)作者:宁波市镇海中学吴倩(第一作者)付刚邮编 : 315200电话一、设计思想本课以《浙江省一般高中新课程实验信息技术学科教课指导建议》为指导,在高中一年级放学期《算法与程序设计》选修课阶段展开教课。
b5E2RGbCAP本课以培育学生能力为目标,突出学生察看、实践、应用能力,意会生活中的有关应用。
二、教材解析1.《高中信息技术课程标准》提出信息技术课的基本理念之一是重申问题的解决,倡议运用信息技术进行创新实践。
在课程设置上,《算法与程序设计》可在高一放学期选修,此中“对分查找”算法是学生技能提高的重要一课;p1EanqFDPw在《信息技术学科教课指导建议》中“对分查找”算法要修业生认识对分查找的观点、初步掌握该算法,要点是对算法解析,以讲解法为主,适合让学生议论与体验。
DXDiTa9E3d2.对分查找算法由理解该算法观点、流程图解析、算法描绘、程序实现构成,在“查找”模块中是重点要求部分;RTCrpUDGiT3.初中阶段未学习过有关知识,故这部分作为崭新内容学习。
三、学情解析1.经过《信息技术基础》必修课《信息的加工》——《算法与编程》、《算法与程序设计》选修课的初步学习,学生已经对算法有必定认识,能够应用流程图和伪码对一些简单算法进行解析,能够初步应用VB编写简单应用程序、实现算法。
5PCzVD7HxA2.依据《信息技术学科教课指导建议》,《算法与程序设计》可按以下次序教课:先上“算法和算法表示”,再上“面向对象程序设计的基本知识”,接下来进行“算法实例的程序实现”、“算法实例” 、“ VB程序设计初步”穿插学习。
学生在此可能会碰到来自于对分查找法的解析、查找效率以及程序实现的困难;jLBHrnAILg3.学生学习此部分,会自但是然地把“对分查找”和“次序查找”联系起来,由于次序查找易于实现,对比之下,对分法稍稍有些困难;也有学生可能会采纳先掌握流程再用自然语言实现、从而用程序实现的方法。
对分查找算法程序实现【学科核心素养】能理解对分查找的原理,利用VB6.0程序设计软件编写简单的对分查找程序,实现在递增整数序列中查找指定整数,剖析对分查找算法的易错点。
(计算思维)。
了解对分查找在学习和生活中的应用。
(数字化学习与创新)。
【课程标准要求】根据“课程标准”中提出的要求:通过实例,掌握使用数据查找算法设计程序解决问题的方法。
【学业要求】理解对分查找算法的思维,编写简单对分查找程序。
【教学内容分析】本课将教材第二章第4节的“查找”和第五章第4节的“查找算法的程序实现”两节合并起来学习,通过理论与实践结合,以加深学生对对分查找算法和程序设计的关系的体会。
对分查找要在数据已经排序的基础上进行,因此这节的学习即是对前面学习的排序算法的应用,也为进一步学习数据查询技术打下基础。
【学生主体分析】通过算法与程序设计基础及枚举、解析、排序等算法的学习,学生已经掌握了基础算法和基础数据结构等知识,具备对数据的分析、处理的基本能力。
但将这些算法利用VB程序实现是学习的疑难点。
考虑到湖州中学选考11班学生具备良好的理工科基础,本节课要求学生直接编写简单的VB二分查找程序,不提供填空、文字提示的形式。
【教学目标】1、了解对分查找的概念,初步掌握对分查找算法。
2、熟悉VB的程序设计步骤和方法,提高将算法转换成程序的能力。
3、培养学生对程序设计的兴趣,对分查找算法的规律,认识对分查找的易错点,并能将所学知识应用于现实生活中。
【教学重、难点】对分查找算法的VB程序实现【教学准备】网络机房;VB6.0,office办公软件;【教学策略分析】教法:问题导学(以问题引领学生探究)、任务驱动。
学法:以小组合作探究为主。
分成4人一组,在学习过程中形成合力,组内交流、组间竞争。
【教学过程】环节过程与内容学生活动设计意图引入:5分钟回顾二分查找算法:展示在9个升序整数列中利用二分查找算法查找某个key的过程(PPT,或者手写,随便)1.观察与思考。
《对分查找算法及程序实现》学案班级 姓名一、【小试身手】1.七名同学的身高(单位:cm )从高到低依次为:178,177,175,172,170,165,162,用对分查找找到178所需要的查找次数是 次,依次访问到的数据是 。
2.有1000个数据按照从小到大的顺序存放在数组a(1 to 1000)中,使用顺序查找的最大次数为 ,使用对分查找的最大次数为。
二、【驾轻就熟】3.某中学2013年下半年和2014年上半年各有300名和100名学生参加信息技术高考,下列VB 程序用于统计参加过这两次考试的学生信息,代码如下:Private Sub Form_Load()‘将参加2013年下半年考试学生的身份证号码放在数组a 中‘将参加2014年上半年考试学生的身份证号码放在数组b 中‘将数组a 中的数据升序排列‘将数组a 和数组b 中的数据分别显示在列表框List1和List2中‘代码略End SubPrivate Sub Command1_Click(),Top As Interger ,m As Interger‘①Do While Bot<=Topm=Fix ((Bot+Top )/ 2)If a(m)=b(i) Then‘②‘③Bot=m+1 End If Loop Next i End Sub4.某体育俱乐部采用会员卡管理消费,会员来参加活动时,输入卡号即可查询卡内余额。
所有会员卡号按照从小到大的顺序保存在数组a 中,对应的余额保存在数组b 中。
下列程序的功能是:在文本框text1中输入卡号,单击“开始查询”按钮command1,程序即可查询对应余额并在文本框text2中显示余额,如果找不到,就显示“卡号不存在!”。
程序界面如图所示。
Function search (i As Integer, j As Integer) As Single ‘自定义查找函数Dim m as IntegerDo while i<=jm= ‘①If a(m) =x then‘②End IfIf Then i=m+1 Else j=m -1‘③Loop‘④End FunctionPrivate Sub Command1_Click()Dim y As Singlex = Text1.Texty = search(1, 5)If y = -1 ThenText2.Text = "卡号不存在!"ElseText2.Text = Str(y)End IfEnd Sub三、【拓展提高】【2016年4月选考真题】已知一无序数组a (下标1到n ),通过引入数组b (下标1到n ),使得a(b(1))≤a(b(2)) ≤a(b(3))……≤a(b(n))(示例如图所示),对这些有序数据可进行对分查找。
查找算法及程序实现教学设计教学课题查找算法及程序实现课型新课适用年级高一年级课时 1课时1. 了解数据查找过程知识 2. 理解顺序查找算法目标 3. 理解对分查找算法1. 学会使用简单问题的顺序查找算法能力教学目标2. 初步学会使用简单问题的对分查找算法目标1.培养学生积极思考、精益求精的求学精神和科学态度。
情感2.激发学生勇于思考,学习算法的兴趣。
目标本节课的教学内容是对两种查找算法基本思想的学习及程序的初步实现。
由于“查找”在人们实际生活中经过做的事,教学时通过实际生活例子导入和帮助理解,然后上升到基础理论。
顺序查找算法较之对分查找算法从基本思想和程序设计上都容易些,教学时要突出对分教学分析查找算法这一教学重点。
两个算法的程序实现是本课时的难点,在教学中教师可通过观察、推理、演示、活动等多种教学形式,帮助学生理解算法,教学时可通过独立思考和小组活动,培养学生的自主学习、合作交流的精神。
教学重点对分查找算法及程序实现。
教学难点两种查找算法的程序实现。
教学资源教材、教参、教具(一副扑克或编号卡片)、学习任务单、CAI、程序源代码等。
教学方法以讲授教学法和活动教学法为主。
教学过程设计教学环节教学内容教师活动学生活动设计意图了解查找算法在列举与学生的学听讲,回想教通过了解查找我们的日常生活生、生活相关的一师列举的例算法与现实生和工作中的重要些与查找算法有子。
回答补充活中的问题或性,了解查找是关的问题或例子。
与查找相关亲身经历紧密我们解决日常应如:找人,找书。
的例子。
联系,激发学生导入用问题经常要用学习兴趣,同时(5分钟) 到的一种数据处由问题引入新理方法。
设问:你有过查找回答,简述自知识点,使学生的经历吗?请简己平时查找了解学习目标。
述你的查找过程。
的过程。
知识点: 1.什么是查介绍查找的多种听讲,思考,通过一些简单找?方法。
举例说明并理解,完成学的例子,让学生2.查找的方法:归纳查找的含义习任务单相归纳总结查找(1)顺序查找。
对分查找算法及程序实现一、二分查找算法二分查找又称折半查找,是一种在有序数组中查找其中一特定元素的算法。
它的基本思想是:将数组的中间位置的数与要查找的数据比较,如果查找数据比中间位置的数小,则在数组的低半部分继续进行查找;如果查找数据比中间位置的数大,则在数组的高半部分继续查找;直到找到该数据或者查找范围为空为止。
二分查找的时间复杂度为O(log n),由于其基本思想是二分法,所以称之为二分查找。
二、二分查找算法的实现1、二分查找的实现//二分查找// arr:被查找的有序数组// item:要查找的项int binary_search(int arr[], int size, int item)int low = 0;int high = size;int middle;while(low <= high)middle = (low + high)/2;return middle;else if (arr[middle] < item)low = middle + 1;elsehigh = middle - 1;}return -1; // 表示没有找到2、二分查找的递归实现//二分查找的递归实现// arr:被查找的有序数组// item:要查找的项// low :数组的低位下标// high:数组的高位下标int binary_search_recursive(int arr[], int item, int low, int high)if (low > high)return -1; // 表示没有找到int middle = (low + high) / 2;return middle;else if (arr[middle] < item)return binary_search_recursive(arr, item, middle + 1, high);elsereturn binary_search_recursive(arr, item, low, middle - 1);三、二分查找算法程序实现#include <iostream>using namespace std;//二分查找// arr:被查找的有序数组// item:要查找的项int binary_search(int arr[], int size, int item)int low = 0;int high = size;。
浙教版高一信息技术教案对分查找
浙教版高一《算法与程序设计》——“对分查找”教学设计(2 课时)一、设计思想
本课以《浙江省普通高中新课程实验信息技术学科教学指导意见》为指导,在高中一年级下学期《算法与程序设计》选修课阶段开展教学。
本课以培养学生能力为目标,突出学生观察、实践、应用能力,领悟生活中的相关应用。
二、教材分析
1.《高中信息技术课程标准》提出信息技术课的基本理念之一是强调问题的解决,倡导运用信息技术进行创新实践。
在课程设置上,《算法与程序设计》可在高一下学期选修,其中“对分查找”算法是学生技能提升的重要一课;
在《信息技术学科教学指导意见》中“对分查找”算法要求学生了解对分查找的概念、初步掌握该算法,重点是对算法分析,以讲授法为主,适当让学生讨论与体验。
2.对分查找算法由理解该算法概念、流程图分析、算法描述、程序实现组成,在“查找”模块中是重点要求部分;
3.初中阶段未学习过相关知识,故这部分作为全新内容学习。
三、学情分析。
《二分查找算法实现》教学设计
一、教学目的
1、理解二分查找算法的原理和基本操作步骤;
2、学习如何利用二分查找算法查找目标值;
3、熟悉实现二分查找算法的基本代码实现。
二、教学过程
1、概念阐述:介绍二分查找算法的基本概念,包括它的定义、特性以及与其他查找算法的比较。
2、理论知识讲解:详细讲解二分查找算法的原理及基本操作步骤,可结合流程图进行说明。
3、练习:引导学生进行实际操作,给出算法的实现思路,例如:将目标值与中间位置的值进行比较,同时记下该中间位置的索引,以此来缩小查找范围。
4、提问讨论:学生在练习后提出查找算法本身的优势和缺点,以及在实际应用中的注意事项。
三、教学效果
1、理解二分查找算法的原理及基本操作步骤;
2、学习如何利用二分查找算法查找目标值;
3、掌握实现二分查找算法的基本代码实现;
4、了解二分查找算法的优势及缺点,及在实际应用中的注意事项。
四、课堂习题
1、什么是二分查找算法?
2、二分查找算法有什么优势?
3、二分查找算法的实现需要注意什么?
4、请编写一个二分查找的代码示例:
public static int binarySearch (int[] arr, int target) int left = 0; //左边界下标
int right = arr.length - 1; //右边界下标
while (left <= right)。
《对分查找算法及程序实现》教学设计一、设计思想根据《浙江省普通高中新课程实验信息技术学科教学指导意见》,在《算法与程序设计》模块教学中,强调理论与实践结合,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决问题。
将教材第二章第4节的“查找算法”和第五章第4节的“查找算法的程序实现”两节合并起来学习,以加深学生对算法和程序设计的关系的体会。
《学科指导意见》对查找算法的要求是初步掌握,因此必须在给学生讲授算法的过程中应让学生动手完成算法,以加深理解。
顺序查找算法比较简单,容易理解和实现,对分查找要在数据已经排序的基础上进行,因此这节的学习即是对前面学习的排序算法的应用,也为进一步学习数据的查询技术打下基础。
教学过程中,让学生了解两种查找算法的特点,引导学生养成这样一个习惯:对于经常需要查找的对象,先要把他们整理成有序的,这样就可以利用对分法进行查找,以提高查找效率。
对分查找算法较顺序查找算法复杂,教学过程中必须将重点放在分析对分查找算法上。
二、教材分析1.《课程标准》对本课教学内容的要求:了解数据查找过程,学会使用简单问题的对分查找算法;理解怎么用VB来实现简单问题的查找算法。
2.《学科教学指导意见》对本课教学内容的基本要求:了解对分查找的概念、初步掌握对分查找算法及程序实现。
3.顺序查找算法是一种基本、简单的查找算法,但查找的效率往往较低;对分查找算法数据比较次数较少,查找效率较高,但它要求数组中的数据是有序的。
三、学情分析通过前面三章的学习,学生初步了解算法及其表示、比较熟悉流程图设计;学习了程序设计的三种结构,也用VB实现过若干应用程序,对于事件处理过程、对象属性有一定的了解,学习使用过VB里的数组,能根据要求通过Visual Basic实现简单算法。
对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。
但由于实践比较少,在对查找算法的学习中,对于对分查找可能难以理解,同时由于程序中有多个对象的事件需要编写代码,对代码的位置会难以把握。
《对分查找及其算法实现》教学设计
湖北省巴东县第一高级中学刘少银
一、教材学情分析
本次课是浙江版高中信息技术选修教材《算法与程序设计》第二章算法实例第四节查找中的一部分内容。
由于教材体系不适合校本实际,我们在教学过程中对教材体系作了如下调整。
讲授顺序:第一章算法和算法的表示、第三章面向对象的程序设计的基本知识、第四章 VB程序设计初步、第二章算法实例,第五章算法实例的程序实现穿插在相关内容教学中完成。
因此在前期教学中学生已经初步掌握了算法基础及算法表示,VB程序设计初步等。
本次课是让学生掌握对分查找的思想及算法的实现。
二、教学目标
知识与技能:理解对分查找的基本含义、方法,理解并能画出对分查找的流程图;
过程与方法:通过案例分析、直观观察,增强分析问题和解决问题的能力;
情感、态度与价值观:感受信息技术与现实生活的关联,激发对信息技术学科的求知欲,培养主动学习和使用信息技术的意识;养成科学的学习态度,不迷信书本、不迷信权威。
三、教学重难点
教学重点:对分查找的基本方法及注意事项;
教学难点:对分查找算法的实现。
四、教学策略
·以“猜数”游戏导入,引入对分查找的概念;
·师生讨论、生生讨论、生生互助;分析、归纳、总结,理解并掌握对分查找的基本思想;
·采用分类研究、分享成果、课后练习等学习方法,理解对分查找方法及基本主要特征;
·采用自然评价、师生评价、生生评价等形式对学习进行过程性评价。
五、教学过程
1.游戏激趣,释疑对分查找
(三个程序图片)
(初始界面)(人工猜数界面)(程
序猜数界面)
准备:几张白纸,一支记号笔。
启动猜数程序。
师:同学们好!大家看到前面的程序了吗?它是一个什么程序呢?
同学:猜数游戏程序。
师:对,这是我用VB针对李泳主持的“幸运52”中猜商品价格环节开发的一款程序,我先来说说针对主持人的部分:当李泳宣布商品的价格范围时,比如10000元内,猜商品价格的人就可以在猜数范围栏起始栏填上“0”,终至栏填“10000”,然后再将鼠标移到猜数栏中单击,程序即提示:“准备!倒计时30秒”,当单击提示处,猜价格倒计时开始,猜价格人即可在猜数栏上填上所猜价格的数值,然后根据主持人的提示,选择“不对”重新填写商品价格或选择“正确”让所猜价格在“猜得结果”栏内显示正确结果并停止计时,提示栏中即显示“您猜了M次,对了,恭喜您”。
师:大家觉得程序光有这样的功能神奇吗?
生:不神奇。
师:对,我也是这样认为的。
这个程序神奇的地方在它能帮助猜商品价格人在规定的时间内,根据主持人的提示准确地猜出商品的价格,而且猜中率100%,所以现在“幸运52”停播了,大家知道为什么吗?
生:不知道。
师:就是因为我开发了这个程序呀!
生:(有的说信,有的抱着怀疑的态度不吭声,也有说不信的)
师:有同学愿意上来试试吗?
师:你在纸上写下你的数值范围和要猜的数,然后给大家看一下,别说出来,别让电脑听见了。
师:好,操作程序让程序帮忙把写的数找出来。
(程序找到正确的数)
师:神奇吧。
师:还有那位同学愿意试一下。
师:同样,你还是先写下要猜的数和范围100~200,这次我们不让大家看到他要猜的数,请大家帮忙记下程序每次出现的数字。
师:电脑程序也猜出了正确结果:132。
程序给出的数字是:
第一个数是:150
第二个数是:125
第三个数是:137
第四个数是:131
第五个数是:134
最后是:132
大家能看出什么规律了吗?
生:看不出
师:单纯从这几个数当中是看不出什么规律,现在我们依次把这些数放到数轴上,再看一下,大家看能找出什么规律呢?
同学发言……
师:大家认为他说的怎样?为什么不鼓掌呀!
师:对,正如刚才的同学说的那样,程序是在给定范围内依次找中点方法来找到我们要找的最终数值,这就是我们今天要讨论的一种新的查找方法:对分查找。
师:我们刚才的游戏中的数列是序的吗?
生:是有序的,升序排列的。
师:如果是降序能用对分查找方式查找吗?
生:能。
师:大家想一想,如果我们打乱数据的排序顺序,在没有排序的数列中能否用对分查找的方法,找到我们想找到的数据?
同学:不能。
师:对,这就是对分查找方法的一个特征,或称为条件。
因为我们是根据数据的大小找到它在数列中的位置。
【设计意图】通过游戏和对程序给出数值在数轴上的分布分析,让学生初步理解和掌握对分查找的方法及前提条件,为后一阶段对分查找算法的实现作好铺垫。
2.分析实例,实现对分查找算法
师:下面我们一起来看一下程序是怎样一步一步的给出以上数据并最终找到“132”这个数的。
师:首先在100至200之间找中点,然后再用中点值150与所要找的数132比较,得出的结论是所要找的数在100至150之间的数,一下数值的范围就缩小了一半,终止变量j 的值就由200变成了150;第二次查找时,程序就给出100至150的中点值125;当程序进行第三次查找时,起始变量i的值就被修改为125,它们的中点值应该是:(125+150)/2=137.5。
有小数了,怎么办?
生:……(有点茫然)
师:对于小数,程序可以继续查找,但有可能要增加查找次数。
为了保证在整数范围内查找,我们就要对含小数的中间值进行处理:取整。
大家还记得我们学过VB的取整函数吗?
生:int。
师:对。
即int(137.5),结果是多少?
生:137。
师:所以我们查找i到j范围内的中点值的表达式应该为:m=int((i+j)/2)。
师:依次类推,程序会依次给出131、134、132即找到了要找的数。
师:请同学们根据算法逐步求精的原则在下面画出流程图。
(展示如下流程图,然后请同学完成完善对分查找的算法流程图)
流程图补充完善后的结果:
【设计意图】通过对程序给出中间数的分析,帮助学生理解对分查找算法实现的方法,为学生顺利完成对分查找算法流程图给予理论与实践上的支持。
3.推出特例,完善对分查找算法
师:同学们,刚才我们完成的对分查找的流程图;下面请同学们用刚才的查找方法分析一下在199至200范围内要找200这个数,能找到吗?为什么?如何解决这个问题?
(将教室内学生按座位分成若干组,进行讨论。
每个组推选一名小组长,完成后作小组发言)
……
(每一小组完成发言后,老师或点评,或让学生点评)
师:根据刚才同学的讨论分析,那我们先前给出的流程图就有了一些缺陷,怎么修改?
(在同学们的发言声中,修改完善流程图)
修改后的流程图如下:
【设计意图】给出特例,让学生相互讨论、互助学习,归纳总结出上述流程图中出现问题的症结所在,并给出正确的流程图;由此可让学生体验到科学探究的方法,从而培养学生的科学态度与探索精神。
六、课后作业
师:1.在前面的取整中我们用了取整函数int,大家想一想能不能用四舍五入函数处理?如果用四舍五入函数(round)处理,流程图又将怎样修改?
2.请看教材P40-43,比较我们所给出的流程图与教材上的流程图有什么差异?两个流程图最后结果是否一致,那个流程图的结果有问题,问题是怎么造成的?请写出一篇500—800字的小论文。
(提示:认真阅读教材P40至P43内容,并分析教材中所给算法的逻辑错误)
作业提交方式:电子邮件(校内、校外均可)
邮件名称:登分号+姓名+论文题目
作业提交地址:************
【设计意图】作业(1)扩充课堂内容,丰富学生知识面,丰富学生分别学习内容;作业(2)通过两个流程图之间差异性比较,引导学生判别书本上所给出流程图的逻辑错误,从而培养学生:1.科学的学习态度和精神,不迷信教材、不迷信权威;2.运用论文等形式来表达自己观点;3.通过学生自己的分析、探索,找出教材中的错误。
七、教学反思
整节课充满了笑声和掌声,课堂气氛活跃,学生参与度高。
老师的主导作用和学生的主体地位得到了充分的体现。
学生在师生互动、生生讨论、生生互助中比较好地掌握了对分查找的思想和算法实现,教学效果好。
但由于时间关系,没有将程序的源代码展示给学生,让学生有一种意犹未尽的感觉是本次课的一个缺憾。