选修1算法与程序设计《23排序》公开课教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择排序算法及其程序实现
一、设计思想
算法的程序实现是程序学习的难点,选择排序算法又是高中信息技术教学中几个算法中较难理解和掌握的。为了让每个学生都乐于听,都能听得懂,整个教学过程把选择排序算法进行手术刀式的解剖,分解为一个一个小知识点,然后各个突破,最终掌握整个算法。一步一步,由浅入深,由小到大,前后呼应,前后关联,直到解决完整算法。
二、教材分析
1.《学科教学指导意见》对本课教学内容的要求:初步掌握选择排序算法的程序实现。对于选择排序,除了掌握排序算法本身外,更重要的是排序算法的原理,了解排序算法的特点。
2.本课内容的组成成分和在模块学习中的地位和作用:排序是的计算机程序设计中一个重要算法,高中信息技术主要有冒泡排序和选择排序,选择排序是对冒泡排序的改进,大大提高了冒泡排序的效率,相对而言,算法比较复杂,比冒泡排序难以理解。学生只有在充分理解和掌握选择排序的算法的前提之下,才能更好使用VB程序语言来实现该算法。所以,本节课在教学的内容上主要由选择排序的算法思想和该算法的程序实现两部分组成。其中,学生对于选择排序的算法思想的理解是前提和基础,也是算法实现过程中难点的突破口。
三、学情分析
1.学生已有的认知水平和能力基础:
在学习本课之前,学生已经掌握了必备的VB6.0操作和基础的VB程序设计语言,学生可以使用这些基本技能实现简单的算法。而且,学生刚刚学过冒泡排序算法,对于排序算法有一定的认识。
2.学生学习本课可能遇到的困难和问题:
本课在学习过程中,学生可能将遇到3个主要困难。第一,理解选择排序算法,从而归纳出算法流程;第二,在程序实现过程中,查找给定范围内最小的数的位置;第三,两个位置的数据如何实现交换,以及何时需要交换。
四、教学目标
知识、技能教学目标:掌握选择排序算法具体过程;初步掌握选择排序算法的程序实现。
能力、方法教学目标:会根据选择排序算法分析画出流程图并写出程序代码;通过实例,掌握使用选择排序算法设计程序解决问题的方法。
情感、态度、价值观教学目标:体验算法与生活的紧密联系,感受解决算法的成功感;培养学生的探究精神。
五、重点难点
1. 教学重点:对于选择排序算法的理解、程序的实现。
2. 教学难点:选择排序算法的VB程序实现。
六、教学方法
讲授法为主,适当让学生讨论与体验。
七、教学过程
(一)游戏导入
【师】上节课,我们邀请了4位同学模拟4个数据进行冒泡排序,在冒泡排序算法中,我们知道冒泡排序是依次把数组中相邻两个数据进行比较,通过交换数据,把较小(较大)的数据逐次向上移动的算法。
【学生复习】4个数据冒泡,进行了( 6 )次比较,( 5 )次交换。【师】整个过程的实质是将一堆数据中的最小(最大)数移动到某个位置,由于数据的移动是逐次进行的,数据交换的次数多。同学们思考一下,有没有更快捷的方法进行数据移动呢?首先我们通过一个游戏来启发大家的思维。
【游戏】学生上讲台完成拼图游戏
(二)选择排序算法推导
【师】结合拼图游戏思想,请同学们思考:如何可以更快捷地将4个数排序?【学生】直接把最小数与第一个位置的数交换,再把第二小的数与第二个位置的数交换,其它类推。
【师】这个思想就是今天我们要学习的选择排序算法。首先我们要解决一个问题,电脑如何来找最小(最大)数?
【学生讨论】学生讨论如何来找最小(最大)数,并作交流发言。
【师】总结:我们可以借助一个自定义的integer变量Min,用它记录最小的一个数据的下标。首先,不管实际情况如何,我们先假设数组中第1个元素为最小,
于是有Min=1,再把这个元素与从第2个元素开始的所有元素作比较,一旦有比d(Min)更小的元素存在,则修改Min变量值为新的较小元素下标。这样,在d(Min)经过了从第2个元素到最后一个元素的一一比较后,所得到的Min应该就是第1到N个元素中的最小元素下标了。然后用类似方法,把2到N个元素中最小数选出来,把3到N个元素中最小数选出来……最后把每次选出来的依次输出即可实现升序排列。
【学生实践】4个数选择排序过程模拟
3遍选择排序过程让3组学生来模拟完成,每组的一个学生画出流程图,另一个学生根据流程图写程序代码。
【师】4个数进行选择排序,程序中带颜色的数字与变量i,n有什么关系?
【学生】k的初值与i一致,j的初值是i+1
【师】对于规模为N的数组,需要遍历处理次数为N-1次,以上的流程就是N-1
次中需要重复做的事,因此,程序再
加一个外循环,来解决N-1遍排序。
【学生实践】根据外循环和内循环不同功能以及流程图,写出选择排序算法程序核心代码。
(三)课堂练习
利用已学的选择排序算法,对初始数据49,38,65,97,76,13,27,59升序排序。
(四)课堂总结
1.选择排序的算法思想和程序核心代码。
2.选择排序的比较次数与交换次数以及与冒泡排序的异同点。
(五)课堂拓展
下节课我们将上机实现选择排序算法实现,并输出比较次数和交换次数,请同学们课后设计好工程界面,并写出选择排序算法的核心代码,下节课进行实践检验。