c语言程序设计冒泡排序教学案例杨进

c语言程序设计冒泡排序教学案例杨进

ID:20360686

大小:74.06 KB

页数:5页

时间:2018-10-12

c语言程序设计冒泡排序教学案例杨进_第1页
c语言程序设计冒泡排序教学案例杨进_第2页
c语言程序设计冒泡排序教学案例杨进_第3页
c语言程序设计冒泡排序教学案例杨进_第4页
c语言程序设计冒泡排序教学案例杨进_第5页
资源描述:

《c语言程序设计冒泡排序教学案例杨进》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C语言程序设计冒泡排序教学案例永川职业教育中心杨进【案例背景】排序是计算机学科中一项复杂而重要的技术,在各种软件中使用频率都很高,因此专家们研究了各种排序算法。在中职类设计课程教学中,常以冒泡排序来讲解排序的原理,它简单,但过程繁琐,传统教学很难激发学生兴趣,学生不易理解,也很难编写掌握冒泡排序。因此,如何合理设计教学过程,让学生掌握冒泡排序的思想和编程方法,又能发散思维,扩充知识,进而激发学生对编程课程的兴趣,是一个关键问题。1、学情分析学生已学习了程序设计的三种结构,学习使用了数组。但在学习排序算法的过程中学生可能会对数组变量的变化在理

2、解上存在一定困难,在排序算法中,对双重循环内外层的作用及有关循环参数的设置可能会产生一些不合理或是错误,需要通过实践的体验进行强化使用规范。2、教学目标知识目标:掌握冒泡排序的原理;能结合冒泡排序的原理看懂冒泡排序的主要代码;理解冒泡排序的流程图;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,进一步体会算法与程序实现的关系;情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的读程习惯;3、教学重点、难点重点:冒泡排序算法的基本思想,双重循环应用难点:双重循环程序的解读,冒泡排序算

3、法实现后对程序的理解4、教学策略与手段以循序渐进、层层深入为教学的指导方针,采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,由特殊到一般,有效地突出重点突破难点,逐步深化对冒泡算法、循环思想和执行过程的理解。5、课前准备PPT课件、冒泡排序的视频文件。【案例描述】师:在前面的学习中,我们学过了用EXCEL进行一些简单的数据处理方法,请同学们说说看你是怎么对同学的成绩排次序的?生:先选好数后,点排序就行了。师:是的。只要用EXCEL的排序功能就可以了,点点鼠标就能完成。在前面的学习中,我们已经解开了很多单击鼠标就可以完成某一个任务的

4、秘密,今天我们就来探访一下排序的秘密。师:先让我们来做个舞蹈视频,同时要求同学们谈谈看后的自己的想法。并要请几位同学模拟示范。这段真人编排的排序算法的舞蹈视频,非常生动有趣,能充分吸引学生的眼球,极大激发了学生的兴趣。播放完毕,老师提问:请同学们说说你们看到了什么?生:议论并说自己的想法。(冒泡排序的过程)由于视频播放相对较快,为了让学生更好理解与参与,老师还根据具体情况请了四位涌跃分子来作下一个游戏。请四位同学从前到后坐好并拿好老师给你们的数字,然后从后面开始两个两个比较你们手中的数,如果后面的同学数小的话就和前面的同学换一下座位,直到拿

5、到最小数的同学坐在第一个位子为止。现在开始,请其他同学注意观察。请同学们说说你们看到了什么?生:议论并说自己的想法师:我听到了同学们的发言了,你们都看到了最小数已经在最前面了,并且是经过了3次的比较。想一想,如果要让拿第二小的数的同学坐上第二个座位,还要进行几次的比较呢?(注意只能从后开始两两比较)请拿数的同学演示一下。几次?生:两次师:对了,是两次,比第一次少了一次。请四位同学回到座位。刚才我们通过四位同学的演示其实给我们展示了一种数据排序的方法-一冒泡法。那么什么是冒泡排序法呢?冒泡排序法:是指把n个要排序的数看成一垂直列,从最下面的数

6、开始两两比较相邻的两个数,把小的数向上换,经过n-1次处理以迗到排序目的的一种排序方法。(课件展示)分析总结学生的演示:(课件展示)第1次冒泡排序时j从4开始到2:第2次冒泡排序时j从4开始到3:rLrLr■…-ji■jdddd1827n321827323618273236d[l]27272718d2■■OB36361827d?■■3218纛3636d[4]18j323232第3次冒泡排序时j从4开始到41818272732—j-l3236j36如果用伪代码可表示为:第1次冒泡排序时j从4开始到2:for(j=4;j>=2,j~)if(d[

7、j]〈d[j-l])交换d[j]和d[j-l]的值第2次冒泡排序时j从4开始到3:for(j=4;j>=3,j—)if(d[j]〈d[j-l])交换d[j]和d[j-l]的值第3次冒泡排序时j从4开始到4:for(j=4;j>=4,j—)if(d[j]〈d[j-l])交换d[j]和d[j-l]的值问:如果我们用一个变i(值分别为1,2,3)来记录冒泡的次数,请问能否将上述的三次代码合并成一段通用的代码呢?生:能(学生讲伪代码)for(j=4,j>=i+l,j—)if(d[j]〈d[j-l])交换d[j]和d[j-l]的值师:对归纳分析引入核

8、心代码:当i=l到3时:(课件展示)for(j=4;j>=i+l;j—)if(d[j]〈d[j-l])交换d[j]和d[j-l]的值那么,我们用我们学过的循环语句就可以把某一次的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。