C语言程序设计冒泡排序教学案例 杨进.doc_第1页
C语言程序设计冒泡排序教学案例 杨进.doc_第2页
C语言程序设计冒泡排序教学案例 杨进.doc_第3页
C语言程序设计冒泡排序教学案例 杨进.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

.C语言程序设计冒泡排序教学案例永川职业教育中心 杨进【案例背景】排序是计算机学科中一项复杂而重要的技术,在各种软件中使用频率都很高,因此专家们研究了各种排序算法。在中职类设计课程教学中,常以冒泡排序来讲解排序的原理,它简单,但过程繁琐,传统教学很难激发学生兴趣,学生不易理解,也很难编写掌握冒泡排序。因此,如何合理设计教学过程,让学生掌握冒泡排序的思想和编程方法,又能发散思维,扩充知识,进而激发学生对编程课程的兴趣,是一个关键问题。1、学情分析学生已学习了程序设计的三种结构,学习使用了数组。但在学习排序算法的过程中学生可能会对数组变量的变化在理解上存在一定困难,在排序算法中,对双重循环内外层的作用及有关循环参数的设置可能会产生一些不合理或是错误,需要通过实践的体验进行强化使用规范。2、教学目标知识目标:掌握冒泡排序的原理;能结合冒泡排序的原理看懂冒泡排序的主要代码;理解冒泡排序的流程图;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,进一步体会算法与程序实现的关系;情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的读程习惯;3、教学重点、难点重点:冒泡排序算法的基本思想,双重循环应用难点:双重循环程序的解读,冒泡排序算法实现后对程序的理解4、教学策略与手段以循序渐进、层层深入为教学的指导方针,采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,由特殊到一般,有效地突出重点突破难点,逐步深化对冒泡算法、循环思想和执行过程的理解。5、课前准备PPT课件、冒泡排序的视频文件。【案例描述】师:在前面的学习中,我们学过了用EXCEL进行一些简单的数据处理方法,请同学们说说看你是怎么对同学的成绩排次序的?生:先选好数后,点排序就行了。师:是的。只要用EXCEL的排序功能就可以了,点点鼠标就能完成。在前面的学习中,我们已经解开了很多单击鼠标就可以完成某一个任务的秘密,今天我们就来探访一下排序的秘密。师:先让我们来做个舞蹈视频,同时要求同学们谈谈看后的自己的想法。并要请几位同学模拟示范。这段真人编排的排序算法的舞蹈视频,非常生动有趣,能充分吸引学生的眼球,极大激发了学生的兴趣。播放完毕,老师提问:请同学们说说你们看到了什么?生:议论并说自己的想法。(冒泡排序的过程)由于视频播放相对较快,为了让学生更好理解与参与,老师还根据具体情况请了四位涌跃分子来作下一个游戏。请四位同学从前到后坐好并拿好老师给你们的数字,然后从后面开始两个两个比较你们手中的数,如果后面的同学数小的话就和前面的同学换一下座位,直到拿到最小数的同学坐在第一个位子为止。现在开始,请其他同学注意观察。请同学们说说你们看到了什么?生:议论并说自己的想法师:我听到了同学们的发言了,你们都看到了最小数已经在最前面了,并且是经过了3次的比较。想一想,如果要让拿第二小的数的同学坐上第二个座位,还要进行几次的比较呢?(注意只能从后开始两两比较)请拿数的同学演示一下。几次?生:两次师:对了,是两次,比第一次少了一次。请四位同学回到座位。刚才我们通过四位同学的演示其实给我们展示了一种数据排序的方法-冒泡法。那么什么是冒泡排序法呢?冒泡排序法:是指把n个要排序的数看成一垂直列,从最下面的数开始两两比较相邻的两个数,把小的数向上换,经过n-1次处理以达到排序目的的一种排序方法。(课件展示)分析总结学生的演示:(课件展示)第1次冒泡排序时 j 从 4 开始到2:第2次冒泡排序时 j 从 4 开始到3:第3次冒泡排序时 j 从 4 开始到4如果用伪代码可表示为:第1次冒泡排序时 j 从 4 开始到2:for (j=4;j=2 ,j-) if (dj=3 ,j-)if ( dj=4 ,j-) if ( dj=i+1,j-) if ( dj=i+1;j-) if ( dj=i+1;j-) if ( djdj-1 ) k= dj= dj-1; dj-1= dj; dj=k;问:这只是某一次比较的代码,那么我们怎么把是第几次体现出来呢?(提示:i是用来记录次数的)生:思考师:其实,我们可以在刚才的循环外再加一层循环,使i也参与变化,以达到对次数的控制(课件展示)for (i=1;i= i+1;j-) if ( djdj-1 ) k= dj= dj-1; dj-1= dj; dj=k;这种在循环体内又有一个循环的格式我们称为双重循环。对于双重循环,在执行时只要明白:“外变一,内一轮”的思路,我们就是对它进行剖析。刚才我们已经讲解了4个数冒泡排序的代码,那么有n个数呢?(课件展示)for (i=1;i= i+1;j-) if ( djdj-1 ) k= dj= dj-1; dj-1= dj; dj=k;分析冒泡排序的源程序(用tc编辑器演示分析)为了进一步检验学生的情况,老师作了问题延伸:编写一个评分系统的代码段:有10个评委,最后得分为去掉一个最高分与一个最低分后的平均分。(提示:排序后要将最小和最大的数去除,再累加其余各数并除以8)。【案例反思】1、本课时采用通过对冒泡排序的基本方法进行分析,利用视频、游戏等多种教学手段,采用正向讲解算法思想,总结规律,归纳算法等方法,一方面使学生顺利从排序的思想过渡到伪代码并到代码的书写,逐步引出双循环和冒泡排序的程

温馨提示

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

评论

0/150

提交评论