《算法与程序设计》(选修模块)3.4对数据进行排序_第1页
《算法与程序设计》(选修模块)3.4对数据进行排序_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高中 对数据进行排序教学案例 案例名称:对数据进行排序适用范围:高中一年级教 材:教科版算法与程序设计(选修模块)3.4对数据进行排序课 时:1课时作 者:戈万红单 位:江苏省东海高级中学E-Mail:*适用年级】普通高中一年级*所用教材】教科版算法与程序设计*学生分析】 学生学习了程序设计的三种结构, 掌握了数组的概念和应用, 理解了解析法和穷举法两个典型 算法,这些都为学习冒泡法排序的算法奠定了基础。*教材分析】 本节课内容为第三章第四节 “对数据进行排序 ”,江苏省普通高中信息技术课程标准教学要求 对排序算法的要求是 “通过实例,使用排序算法设计程序解决问题的方法 ”。冒泡法排序算法是程

2、序设计中 的重要算法,又不容易理解,因此本节课通过多种方式加深学生对冒泡法排序算法的理解。*教学目的】1、知识和技能(1)理解冒泡法排序算法思想。(2)学会用冒泡法对数据排序。2、过程和方法 通过观察动画演示,思考相关问题,分析算法,画流程图,上机编程实践,掌握冒泡法排序算法的思想和 应用。3、情感态度与价值观(1)培养学生的逻辑思维能力,使学生体会将自己的逻辑思维与计算机程序设计相结合的过程。(2)培养学生对程序设计的兴趣和设计程序解决实际问题的能力。*教学重点】(1)冒泡法排序原理。(2)运用冒泡法排序解决实际问题。*教学难点】(1)理解冒泡法排序中的趟、次等概念。(2)算法的优化。*主要

3、教法】演示法、讲授法、启发*主要学法】模仿、实践、协作、自主探究。*设计理念】学生是信息加工的主体、是意义的主动建构者,教师是意义建构的帮助者、促进者。通过创设 符合教学内容要求的情境和提示新旧知识之间联系的线索,帮助学生建构当前所学知识的意义。*教学用具】微机房多媒体演示系统*教学过程】一、创设情境,导入新课1、观看动画:王小丫主持的 “开心辞典 ”栏目中有一道题是观看录像,然后根据录像内容回答问题。下面也 请同学们观察动画演示过程,然后回答问题。2、师生问答: 师:这个动画描述了什么问题? 生:把一组数按从小到大的顺序进行排列。师:采用什么样的方法? 生:相邻两个数两两比较,小的放到前面,

4、大的放到后面。师:第一趟比较多少次?第二趟比较多少次?一共比较了几趟?生:第一趟比较9次,第二趟比较8次,依此类推,最后一趟比较1次,一共比较9趟。 师:动画中是对10个数从小到大进行排序,如果对n个数进行排序呢?生:第一趟比较n-1次,第二趟比较n-2次,依此类推,最后一趟比较1次,一共比较n-1趟。 师:这就是排序方法中比较典型的冒泡法排序。这节课将学习冒泡法排序原理,并运用冒泡法排序解决实 际问题。二、启发思考 ,实践探究3、让学生通过分析和思考,总结出冒泡法排序算法的思想。4、根据学生总结的结果,教师再次进行补充完善冒泡法排序算法的思想。 基本思想:将相邻两个数比较,小的交换到前面,大

5、的交换到后面。具体过程如下:(1)将n个数按从小到大顺序进行排序,第一趟将相邻两个数比较,小的交换到前面,大的交换到后面, 经n-1次比较后,最大的数被交换到最后一个位置。(2)第二趟对余下的n-1个数按上面方法比较交换,经n-2次比较后将次大的数放在倒数第二个位置。(3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。 由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称冒泡法排序。5、教师继续提出问题:如何用程序来进行排序?6、 和学生一起分析:用双重循环实现,外循环变量设为i,内循环变量设为j,外循环重复9次,内循环依次重复9,8,.,1次。每次进行

6、比较的两个元素可以分别用a(j-1)和a(j)表示,i的值依次为1,2,.,9趟,对于每一个I趟, j的值依次为10-I次。具体算法如下:(1)输入10个数到数组中。(2)从小到大把数组中的变量进行排序。for i=1 to 9for j=i+1 to 10if a(j-1)a(j) then交换(j-1)和a(j)(3)输出排序后的数组。7、 和学生一起画出算法的流程图。8、 让学生根据算法编写VB代码来解决将10个数按从小到大的顺序进行排序问题。9、 教师对学生的编程情况进行点评,并要求学生修改代码,将10个数按从大到小的顺序进行排序。三、 拓展加深,优化程序10、 教师再次让学生观察 “

7、冒泡法排序 ”的动画演示,继续提出问题:在动画中可以看出,第四趟排序结束, 所有数据的顺序就满足从小到大的规则, 按理说, 此时可以停止比较, 可是程序依然要比较完9趟才结束, 只是不再需要交换。请同学们修改程序如何在满足排序规则后就终止比较?11、 在学生思考后,教师提示:引入一个布尔型变量flag,在每趟排序开始前,先将其置为False。若排序过程中发生了交换,则将其置为True,结束时检查flag,如果没有进行交换则终止比较,不再进行下一趟排序。四、 归纳总结,巩固知识12、请学生复述冒泡法排序算法思想。13、和学生一起再次归纳冒泡法排序算法的实现过程:(1)通过不同方法输入n个数。(2

8、)实现排序的过程:For i=1 TO n- 1外循环控制排序趟数为(n-1)趟For j= i+1 TO n内循环控制当前趟排序次数(n-i)次If a(j- 1)a(j) then交换位置temp=a(j)a(j)=a(j-1)a(j-1)=tempend ifNext jNext i(3)采用不同的方法输出数组中排好序的n个数。14、计算机编程中,排序算法的使用非常频繁。实践中,人们设计出了许多好的算法,除了冒泡法排序, 还有交换排序、插入排序、选择排序、归并排序、基数排序等等,各种算法有其自身的特点与适用范围。 在以后同学们还将陆续学习这些算法,我更愿意看到同学们在实践中设计出更多更好

9、有创新的算法。*教后反思】本节课通过 “提出问题 观察思考 总结规律 实践探究 综合应用 拓展加深 ”这个流程来进行 教学。在突破难点上,采用 “观察动画 画出流程图 总结算法实现过程 编写代码 ”多样方式加深对 冒泡排序算法的理解。学生全程参与了知识的形成过程,通过积极思考、广泛交流、主动探究与建构,使 问题得到解决,把新知识纳入旧知识的体系中,使学生在一节课时间内理解了冒泡法排序这个较为复杂抽 象的算法。在整个学习过程中,学生成为真正的学习的主体,教师只是起到主导的作用,是学生学习的帮 助者和促进者。学生能在教师的引导下,积极思考,勇于归纳,敢于探究,大胆实践,使学生的逻辑思维能力得到锻炼。 同时提高了学生对程序设计的兴趣和设计程序解决实际问题的能力。本案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论