冒泡排序法教学设计说明

冒泡排序法教学设计说明
冒泡排序法教学设计说明

《冒泡排序法》教学设计

一.教材分析

本节容选自教育《算法与程序设计》第五章第三节。本节课主要讲解冒泡排序思想、算法以及编程思路,下节课让学生进行上机实践。排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。

二.学习者分析

通过一段时间的学习,同学们已经了解了程序设计的基本知识,掌握了数组、循环语句等C语言基础知识,具备了一定的编程能力和编程思想。这个阶段的学生,思想活跃,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的学习特征。

三.教学目标

1.知识目标:

(1)掌握冒泡排序的原理,能读懂冒泡排序的算法;

(2)掌握冒泡排序法的基本过程,理解冒泡排序法的C语言程序;

2.能力目标:

(1)学会使用冒泡排序思想设计解决简单排序问题的算法;

(2)进一步理解程序设计的基本方法,体会程序设计在现实中的作用;

3.情感目标:

培养学生分析问题、发现规律、解决问题的能力;培养学生良好的程序书写习惯;

四.教学重难点

教学重点:冒泡排序法的基本思想和实现过程。

教学难点:用C语言编写冒泡排序法的程序、冒泡排序的思想。

五.教学方法与策略

本节课将采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。六.教学资源

教材、扑克牌、黑板等。

七.教学过程

位置。重复这个过程,直到循环n-1次为止。

【教师板书算法,强调重点,引导学生理解冒泡思想】

4.演示排序过程

(1)以例题为例进行算法演示:

例题1:一组学生的成绩存放在数组a[]中,a[5]={96,89,85,64,72},对数据按从小到大的顺序进行排序。

排序过程:

趟数数据

第一趟 89 85 64 72 96

第二趟 85 64 72 89 96

第三趟 64 72 85 89 96

第四趟 64 72 85 89 96

(2)提出思考问题,并请同学回答:

问题:5个元素,排序进行趟;每趟比较次数?

n个元素,排序进行趟;每趟比较次数?

5.编写C语言程序

思考问题:如何将算法实现为程序?

教师:引导学生思考排序过程如何用C语言实现。需要完成的工作:

数据存放?——数组int a[5];

交换数据?——判断用if语句,设临时中间变量tmp;

循环?——两层循环,用for语句,for(int i=0;i<4;i++);for(int j=0;j<4-i;j++);

}

八.教学评价

学生学习效果评价表

九.教学流程图

十.板书设计

C语言程序设计冒泡排序教学案例

C语言程序设计冒泡排序教学案例 永川职业教育中心杨进【案例背景】 排序是计算机学科中一项复杂而重要的技术,在各种软件中使用频率都很高,因此专家们研究了各种排序算法。在中职类设计课程教学中,常以冒泡排序来讲解排序的原理,它简单,但过程繁琐,传统教学很难激发学生兴趣,学生不易理解,也很难编写掌握冒泡排序。因此,如何合理设计教学过程,让学生掌握冒泡排序的思想和编程方法,又能发散思维,扩充知识,进而激发学生对编程课程的兴趣,是一个关键问题。 1、学情分析 学生已学习了程序设计的三种结构,学习使用了数组。但在学习排序算法的过程中学生可能会对数组变量的变化在理解上存在一定困难,在排序算法中,对双重循环内外层的作用及有关循环参数的设置可能会产生一些不合理或是错误,需要通过实践的体验进行强化使用规范。 2、教学目标 知识目标:掌握冒泡排序的原理;能结合冒泡排序的原理看懂冒泡排序的主要代码;理解冒泡排序的流程图; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,进一步体会算法与程序实现的关系; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的读程习惯; 3、教学重点、难点 重点:冒泡排序算法的基本思想,双重循环应用 难点:双重循环程序的解读,冒泡排序算法实现后对程序的理解 4、教学策略与手段 以循序渐进、层层深入为教学的指导方针,采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,由特殊到一般,有效地突出重点突破难点,逐步深化对冒泡算法、循环思想和执行过程的理解。

5、课前准备 PPT课件、冒泡排序的视频文件。 【案例描述】 师:在前面的学习中,我们学过了用EXCEL进行一些简单的数据处理方法,请同学们说说看你是怎么对同学的成绩排次序的? 生:先选好数后,点排序就行了。 师:是的。只要用EXCEL的排序功能就可以了,点点鼠标就能完成。在前面的学习中,我们已经解开了很多单击鼠标就可以完成某一个任务的秘密,今天我们就来探访一下排序的秘密。 师:先让我们来做个舞蹈视频,同时要求同学们谈谈看后的自己的想法。并要请几位同学模拟示范。 这段真人编排的排序算法的舞蹈视频,非常生动有趣,能充分吸引学生的眼球,极大激发了学生的兴趣。 播放完毕,老师提问:请同学们说说你们看到了什么? 生:议论并说自己的想法。(冒泡排序的过程) 由于视频播放相对较快,为了让学生更好理解与参与,老师还根据具体情况请了四位涌跃分子来作下一个游戏。 请四位同学从前到后坐好并拿好老师给你们的数字,然后从后面开始两个两个比较你们手中的数,如果后面的同学数小的话就和前面的同学换一下座位,直到拿到最小数的同学坐在第一个位子为止。 现在开始,请其他同学注意观察。 请同学们说说你们看到了什么? 生:议论并说自己的想法 师:我听到了同学们的发言了,你们都看到了最小数已经在最前面了,并且是经过了3次的比较。想一想,如果要让拿第二小的数的同学坐上第二个座位,还要进行几次的比较呢?(注意只能从后开始两两比较)请拿数的同学演示一下。几次? 生:两次 师:对了,是两次,比第一次少了一次。请四位同学回到座位。刚才我们通过四位

人教版数学高一-算法案例 同步教学设计

1.3算法案例 第三、四课时 秦九韶算法与排序 (1)教学目标 (a )知识与技能 1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。 2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。 (b )过程与方法 模仿秦九韶计算方法,体会古人计算构思的巧妙。能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。 (c )情态与价值 通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。 (2)教学重难点 重点:1.秦九韶算法的特点 2.两种排序法的排序步骤及计算机程序设计 难点:1.秦九韶算法的先进性理解 2.排序法的计算机程序设计 (3)学法与教学用具 学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。 2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。 教学用具:电脑,计算器,图形计算器 (4)教学设想 (一)创设情景,揭示课题 我们已经学过了多项式的计算,下面我们计算一下多项式 1)(2345+++++=x x x x x x f 当5=x 时的值,并统计所做的计算的种类及计算次数。 根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。 我们把多项式变形为: 1)))1(1(1()(2+++++=x x x x x x f 再统计一下计算当5=x 时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法。 (二)研探新知 1.秦九韶计算多项式的方法

高中信息技术《冒泡排序算法》优质课教学设计、教案

高一冒泡排序教学设计 基本路线:数组-排序-冒泡排序【冒泡排序原理--流程图-算法优化】-小结 一、教材分析:本节内容选自浙江教育出版社《算法与程序设 计》第五章第三节。本节课主要讲解冒泡排序思想。排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。 教学目标 知识目标:掌握冒泡排序的原理;掌握冒泡排序的流程图; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 进一步学习流程框图的使用。 情感目标:增强分析问题、发现规律的能力,激发学习热情; 学情分析 通过前面的学习,学生已经了解vb 算法设计的基本知识,学会利 用自然语言和流程图描述解决问题的算法,对排序中循环语句以有了一

定的基础。但数组变量的使用方法尚未接触,程序设计思想比较弱,在实际生活中往往忽视运用排序算法来处理实际问题,这就要求学生通过本节课的学习,学会运用冒泡排序算法来处理实际问题,并为以后学习其它排序算法打下基础。 二、重点难点 重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解)以及用流程图描述冒泡排序的过程 三、教学策略与手段 采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点、突破难点。 四、课前准备 1.教师的教学准备:冒泡排序的课件、学案、素材 2.教学环境的设计与布置:多媒体网络教室、电子白板、多媒体教学平台等

五、教学过程 课前学习【设计意图】学Th能自己学会的不讲。排序数组知识点相对简单,由学生自学完成,之前的知识点学生可能会有所遗忘,通过这个方式让学生回顾。冒泡排序算法原理比较容易也由学生自学完成。 已给出的素材,完成学案关于数组、冒泡排序和循环结构的基本模式的相关部分的内容,。 请同学们学习学习网站上的课前学习,并完成学案的相关部分的内容。 上课! 对答案。 1、之前在巡视过程中拍到的学案内容传到电子白板。师:同学们,我们刚才完成了学案上的一部内容。来看一下同学们的成果。 我们给他掌声鼓励 2、排序的定义,请学生复述。师:如果从已排序的2 万个人中,查找一个人,用二分法查找,可以在15 步以内完成;如果把地球上的

冒泡排序的算法及其程序实现

冒泡排序的算法及其程序实现 浙江省慈溪中学施迪央 教学分析: 本节课是浙江教育出版社出版的普通高中课程标准实验教科书《算法与程序设计》第二第3节以及第五章第3节的部分教学内容。 一组不长的数据(如5个),从小到大排序,对学生来说是一件容易的事情,但他们并不知道计算机是怎么实现排序的,同时他们也没见识过计算机对大量数据(如1000个)的排序。学习排序有助于学生对计算机工作原理的认识。冒泡排序对学生来说初次接触,但前面的枚举算法和解析算法的部分内容对学习排序有一定的帮助,如数组变量的定义及使用方法、双重循环的使用方法及特点以及如何通过键盘输入一批数据(即text1_keypress()事件)在前面都已涉及,冒泡排序的学习又可以巩固前面的知识。 关于冒泡排序的算法及程序实现我安排了3个课时,本案例是在教室内完成的2节随堂课,第3课时安排学生上机实践:对键盘输入的一批数据进行冒泡排序。 教学目标: 1、知识与技能: 了解排序及冒泡排序的概念及特点 掌握冒泡排序算法的原理 初步掌握冒泡排序的程序实现 2、过程与方法: 理解冒泡排序的分析过程,并初步掌握用冒泡排序算法来设计解决简单的排序问题 3、情感态度与价值观: 通过冒泡排序算法的分析过程,培养学生思维的严谨性以及用科学方法解决问题的能力使学生深入理解计算机的工作原理,激发了学生学习程序兴趣。 教学重点: 冒泡排序算法的原理 教学难点: 分析冒泡排序的实现过程 教学策略: 讲授法与探究法。教师讲授、学生听讲,教师提问、学生动脑,层层深入,步步为营,一切水到渠成。 教学准备: 编写好手动输入一批的数据的冒泡排序的程序 编写好计算机自动生成数据的冒泡排序的程序 课堂中使用的教学课件 教学过程: 一、问题引入 问题一:什么是排序? 所谓排序,把杂乱无章的一列数据变为有序的数据,比如7,3,4,8,1这五个数据从小到大排序,结果是1,3,4,7,8,我们很容易排出来。那么电脑是怎么进行排序的呢?问题二:一批数据在VB中如何存储的?比如如何存储六位裁判为一位运动员评出的分数? 用数组变量来存储一批类型、作用相同的数据,如分别用d(1),d(2),d(3),d(4),d(5),d(6)来存储六位裁判给出的分数。 问题三:如果运动员的最后得分是从这6个分数中去掉最高分与最低分后的平均分,你认为

冒泡排序教学设计

冒泡排序教学设计 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

3.2.2冒泡排序教学设计 一、教材分析 本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。 《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”冒泡排序的算法及程序实现就很好地较全面地体现了这点。 排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。 二、学情分析 通过前面的学习,同学们已经初步了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的口味。 三、教学目标 知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 四、重点难点 重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解) 五、课前准备 教师的教学准备:冒泡排序的课件 2

高中信息技术《用循环的思想解决问题—冒泡排序》优质课教学设计、教案

“用循环的思想解决问题—冒泡排序”教学设计【学习目标】 1熟练掌握for 循环嵌套 2理解冒泡排序的思想 3学会用程序实现排序算法 【重点】用循环嵌套的思想解决问题 【难点】冒泡排序的算法 壱、回顾上节课所学的循环案例 (1)、Sum=1!+2!+3!…+i!…+n! 3 用递归函数实现 For i=1 to n s=s+f(i) Next i

递归函数function 函数名(变量as 类型)as 类型Function f(n As Integer) As Integer If n = 0 Then f = 1 Else f = n * f(n - 1) End If End Function (2)打印字符图形

弐、循环思想在冒泡中的应用 6.8 89 16.8 72.8 120 1 7.2 63 9.8 1在这些数据中,先找出最大值 2在剩余的数中,在找出最大值 3重复2,一直到剩下一个数,即完成了排序 ——如何求n 个数最大值? a(1) a(2) a(3) a(4) ……a(n) 首先a(1) a(2)比较,最大值存放在a(2)中然 后a(2)a(3),比较,最大值放在a(3)中 以此类推,一直到a(n-1)和a(n)比较,最大值放在a(n)中推论:利用a(i)>a(i+1)为判断条件,当条件成立,两个数交换值,否则进行下一轮比较如下图所示:

课堂实践1 8 名学生分别代表a(1)……a(8),分别存储 6.8 89 16.8 72.8 120 1 7.2 63 9.8以其他学生为导演,展示两两相比,交换的过程,如图

研究第i 轮时: 总结冒泡排序的思路:

冒泡排序教学设计

高一冒泡排序教学设计 一、设计思想 算法与程序设计具有高度的抽象性和严密的逻辑性,教师难教、学生难学成为一个突出的现象。如何消除学生畏惧心理,充分调动学生的积极性,正是我设计该课的主要目标。程序设计的基本方法是自顶向下地逐步求精和模块化。自顶向下地逐步求精是指首先要对所设计的系统有一个全面的理解,其次从顶层开始连续地逐层向下分解,直到系统的所有模块都被分解为一条条的详细指令时为止。模块化是指把一个大的程序按照一定的原则划分为若干个相对独立但又相关的小程序(模块)的方法。依据这个基本方法,在教师的引导下,从简单到复杂,从粗到精,各个难点分解,最后师生共同完成总流程图的设计。在整个过程中,教师要积极引发学生的思考,让他们真正参与进来。 二、教材分析 本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。 《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”冒泡排序的算法及程序实现就很好地较全面地体现了这点。 排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。 三、学情分析 我是先上第一、三、四章,再上第二和第五章。通过前面三章的学习,同学们已经了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的口味。 四、教学目标 知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 五、重点难点 重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解) 六、教学策略与手段 采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。 七、课前准备

基础排序总结(冒泡排序、选择排序)

1、冒泡排序 1.1、简介与原理 冒泡排序算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。 冒泡排序原理即:从数组下标为0的位置开始,比较下标位置为0和1的数据,如果0号位置的大,则交换位置,如果1号位置大,则什么也不做,然后右移一个位置,比较1号和2号的数据,和刚才的一样,如果1号的大,则交换位置,以此类推直至最后一个位置结束,到此数组中最大的元素就被排到了最后,之后再根据之前的步骤开始排前面的数据,直至全部数据都排序完成。 1.2、代码实现 public class ArraySort { public static void main(String[] args) { int[] array = {1, 7, 3, 9, 8, 5, 4, 6}; array = sort(array); for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } public static int[] sort(int[] array) { for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length-i; j++) { if (array[j] > array[j+1]) { int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } return array; } } 1.3、效率

冒泡排序教学设计

3.2.2冒泡排序教学设计 一、教材分析 本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。 《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”冒泡排序的算法及程序实现就很好地较全面地体现了这点。 排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。 二、学情分析 通过前面的学习,同学们已经初步了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的口味。 三、教学目标 知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 四、重点难点 重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解) 五、课前准备 教师的教学准备:冒泡排序的课件

C语言冒泡排序法的简单程序

求一个C语言冒泡排序法的简单程序 悬赏分:50 - 解决时间:2007-9-4 11:16 我不明白怎么写 随便给我个就行 谢谢了 提问者:redangel0002 - 助理二级最佳答案 main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=1;i<11;i++) printf("%5d,",a[i] ); printf("\n"); } -------------- 冒泡算法 冒泡排序的算法分析与改进 交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。 冒泡排序 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 (1)初始 R[1..n]为无序区。 (2)第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key

冒泡排序的教学设计

VB 程序设计之十大算法-------“冒泡排序”教学设计 姓名:李芳 邮箱:czzflf@https://www.360docs.net/doc/9b8118662.html,

【教材分析】 本节课取之《中职计算机专业高级教程》,因本书中涉及到排序类的题型不多,而且知识点比较单一,例题没有很好的与控件结合起来,因此在课堂中将引入形式各样的题型,让学生通过读题、分步解题来掌握知识点,得出一类题型的解题规律,提高课堂教学的有效性。 【学情分析】 本课教学对象是高三计算机专业班级,班级由18名同学组成,其中有一名同学是本学期刚从实习转回高复。他们在高二VB教学中就突显出拿到编程题无从下手的窘况,缺乏分析问题的能力,由于英语底子薄,在编写代码方面有时即使知道该如何书写,但也总因为单词写错而影响整个得分。 【考纲分析】 对于这一算法,在考纲中只有这样一句话:“掌握冒泡排序法的编程方法”。但是对于这个知识点是高考中操作设计大分题,因此必须让学生引起高度的重视。例如在2012年的高考中,最后一题设计题16分就是关于排序题。 【教学目标】 知识与技能 1.通过简单排序题,得出读题的方法和解题“三步走”块化的概念。 2.能够将长代码进行分块化编写,从而解决复杂题型。 过程与方法 1.读题时学会抓住其中的关键字,知道解题思路 2.边讲边练的教学法,帮助学生自主学习 情感与态度 1.以简单易懂题入手,激发学生学习的热情,树立信心 2.培养学生处理复杂问题的耐心 【教学重点】 1.清楚冒泡排序的固定代码 2.对编程类题型形成“输入、处理、输出”三步走的概念 3.养成高考解题的规范性。 【教学难点】 1.能够学会捕捉题中的关键字 2.能够书写冒泡与控件相结合题的代码 【教学方法】 分析法、举例法 【教学过程】

浙教版高一冒泡排序教学设计

浙教版高一冒泡排序教学设计 浙江省象山中学章婷红 315700 zthdd@https://www.360docs.net/doc/9b8118662.html, 一、设计思想 算法与程序设计具有高度的抽象性和严密的逻辑性,教师难教、学生难学成为一个突出的现象。如何消除学生畏惧心理,充分调动学生的积极性,正是我设计该课的主要目标。程序设计的基本方法是自顶向下地逐步求精和模块化。自顶向下地逐步求精是指首先要对所设计的系统有一个全面的理解,其次从顶层开始连续地逐层向下分解,直到系统的所有模块都被分解为一条条的详细指令时为止。模块化是指把一个大的程序按照一定的原则划分为若干个相对独立但又相关的小程序(模块)的方法。依据这个基本方法,在教师的引导下,从简单到复杂,从粗到精,各个难点分解,最后师生共同完成总流程图的设计。在整个过程中,教师要积极引发学生的思考,让他们真正参与进来。 二、教材分析 本节内容选自浙江教育出版社《算法与程序设计》第二章第三节和第五章第三节。以第二章内容为主,下节课让学生进行第五章编写程序及上机实践。 《课程标准》指出《算法与程序设计》模块教学主要目的是“使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。”冒泡排序的算法及程序实现就很好地较全面地体现了这点。 排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。 三、学情分析 我是先上第一、三、四章,再上第二和第五章。通过前面三章的学习,同学们已经了解了算法设计的基本知识,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,画流程图还不太熟练,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的口味。 四、教学目标 知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码; 能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 五、重点难点 重点:理解冒泡排序原理及它的流程图

结合生活经验_注重算法的实际应用_冒泡排序_教学设计点评_谢作如

29 中国信息技术教育 2011/11 《冒泡排序》一课,在算法和生活的联系方面有了一定的突破,值得我们学习和借鉴。 ● 算法挖据,从玩转扑克牌开始“教育即生活。”陶行知先生如是说。生活是教学的出发点和起点,信息技术教学需要结合学生的生活、学习实际,要以学生的现实生活为源泉。教师在组织教学时,要根据学生的实际生活“活用”教材,用学生的真实生活丰富、充实教学内容。因此,在进行“算法及程序设计的实际应用”教学时,要注意关注学生已有的实际生活经验,教学所选取的素材要以学生的生活经验为起点,瞄准算法与学生生活经验的最佳结合点,并架起桥梁,在课堂上创设有利于学生全面发展的活动,引入生活之水,促进学生对算法的理解。 在这节课的教学中,教师采用了游戏法、演示法、分析归纳法等,用身边熟悉的扑克牌例子出发,引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,从易到难,一环扣一环地进行深入学习,有效地突出重点并突破了难点。我们来看教师的具体做法。 环节一,课前教师先给每组(机房共8组,每组5人)随机分5张扑克牌,要求每人手里持一张牌。并提出要求:这节课 的任务就是把小组同学手中的牌按从小到大的顺序在自己的组里进行排序。 环节二,每组同学根据手里的牌,从小到大进行排序(即小的牌在前面,大的牌在后面)。思考如何把一组扑克牌数字进行排序,归纳方法。 环节三,学生亲身实践手中的扑克牌并观看冒泡排序动画演示。 环节四,亲身实践,从小到大排序手中扑克牌(给学生足够的时间)。 在一节课中,教师大胆地把时间交给学生,让学生在玩扑克牌的过程中体会计算机排序的算法,这无疑比让学生观看N次的课件和教师不厌其烦地讲解冒泡排序过程的效果要好得多。我听过多节《冒泡排序》的公开课,也见过有教师将不同高度的学生请到讲台前演示冒泡的做法,看上去有趣而直观,其实容易造成课堂纪律混乱,难以控制。相比之下,使用扑克牌的教学效果要更好些。 ● 算法分析,善于使用生活化的类比 算法与程序设计模块是培养学生思维能力的一门课程,在教学中强调了理论与实践的结合,需要学生具有一定的数学知识和逻辑思维判断能力。类比法是将抽象、难以理解、看不见摸不着的知识和具体、容易接受、有形 冒泡排序是一种经典的排序算法,在浙江教育出版社出版的《算法与程序设计》教材中,冒泡排序算法是教学重点,也是难点。相对于Excel、FrontPage、QQ之类的软件,算法在学生眼里是抽象而高深的,因此,缺乏学习的热情。而浙教版的教材特别强调算法在解决问题过程中的关键地位,如果不对教材内容进行认真处理,很容易导致学生对算法失去兴趣,甚至反感。那么,如何让学生认识到算法是信息技术处理信息的核心内容?如何使学生更好、更深入地理解算法、学习算法?如何让学生体验到应用算法解决实际问题的成功和快乐?这些都是教师在教学算法与程序设计模块时需要认真思考的问题,也是需要探索的方向。 《普通高中信息技术课程标准》对算法与程序设计模块教学提出了要求:“要强调理论与实践的结合,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序解决实际问题。”在实际教学中,教师应该从学生的实际生活经验出发,在学习过程中不断培养学生获取、分析、应用信息的能力,促进学生运用编程知识解决生活问题能力的提高,使学生真正从工具的桎梏中走出来,走进算法与程序设计这个充满魅力的世界。吴晓海老师设计的 结合生活经验,注重算法的实际应用 ——《冒泡排序》教学设计点评 谢作如 浙江省温州中学

冒泡排序算法精讲

排序算法 【教学目标】 1、理解排序的概念 2、了解常用排序方法 3、理解冒泡排序的基本思路 4、应用冒泡排序法进行排序 【重点难点】 1、冒泡排序法的基本思路 2、应用冒泡排序法进行排序 排序的概念: 排序就是把一组元素(数据或记录)按照元素的值的递增或递减的次序重新排列元素的过程。 如:49 38 76 27 13 常用排序的方法: 1、冒泡排序:冒泡排序是一种简单而饶有趣味的排序方法,它的基本思想是:每次仅进行相邻两个元素的比较,凡为逆序(a(i)>a(i+1)),则将两个元素交换。 2、插入排序:它是一种最简单的排序方法,它的基本思想是依次将每一个元素插入到一个有序的序列中去。这很象玩扑克牌时一边抓牌一边理牌的过程,抓了一张就插到其相应的位置上去。 3、选择排序:这是一种比较简单的排序方法,其基本思想是,每一趟在n-i+1(i=1,2,3,...,n-1)个元素中选择最小的元素。 冒泡排序: 冒泡排序是一种简单而饶有兴趣的排序方法,它的基本思想是:每次进行相邻两个元素的比较,凡为逆序(即a(i)>a(i+1)),则将两个元素交换。 整个的排序过程为: 先将第一个元素和第二个元素进行比较,若为逆序,则交换之;接着比较第二个和第三个元素;依此类推,直到第n-1个元素和第n个元素进行比较、交换为止。如此经过一趟排序,使最大的元素被安置到最后一个元素的位置上。然后,对前n-1个元素进行同样的操作,使次大的元素被安置到第n-1个元素的位置上。重复以上过程,直到没有元素需要交换为止。 例题:对49 38 76 27 13进行冒泡排序的过程: 初始状态:[49 38 76 27 13 ] 第一趟排序后:[38 49 27 13] 76 第二趟排序后:[38 27 13 ] 49 76 第三趟排序后:[27 13 ] 38 49 76

高一冒泡排序教学设计

高一冒泡排序教学设计 、教学目标知识目标:掌握冒泡排序的原理;理解冒泡排序的流程图;编写冒泡排序的主要代码;能力目标:学会使用冒泡排序思想设计解决简单排序问题的算法;进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感目标:培养学生分析问题、发现规律的能力,激发学生学习热情;培养良好的程序书写习惯; 二、重点难点 重点:理解冒泡排序原理及它的流程图 难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解) 三、教学策略与手段 采用讲解法、演示法、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解 难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。 四、课前准备 1教师的教学准备:冒泡排序的课件 2 ?教学环境的设计与布置:多媒体网络教室、投影机、多媒体教学平台 五、教学过程 一、导入:创新情景 通过扑克牌的展示引入排序的概念 排序:通过调整位置,把杂乱无章的数据变为有序的数据。。 二、新课 排序的方法很多,这节课我们来学习其中一种比较典型的排序方法一一冒泡排序。 1冒泡排序的基本思想 一边讲解一边以文字形式给出冒泡排序的基本思想(书P31略)。特别要强调怎样算一遍 处理,而且每遍总是从“最下面起”,“自下而上”,比较“相邻”两数。 2、画流程图(按非减次序排序) 这块内容是本节课的重点,采用自顶向下逐步求精的方式,由特殊到一般归纳总结,利用 模块化,各个难点一一突破。 (1)以5张扑克牌的排序为例,演示冒泡排序的逐个过程,再次强化学生对冒泡排序过程的理解。教 师要书写每遍排序过程中两两比较的数、比较的次数、待排序的第一个数 (2)小结排序过程:5张扑克牌总共进行了4轮排序。每轮排序冒起一个最小数,于 是转化成右侧流程图。(譽) 流程图一

冒泡排序法教案

一、复习回顾 什么是排序:排序是把一个无序的数据元素序列整理成有规律的按排序关键字递增(或递减)排列的有序序列的过程。 /************************************************ (已经学过的排序方法有:直接插入排序、希尔排序、 直接插入排序:顺序的把待排序序列中的各个记录按其关键字的大小,插入到已排序的序列的适当位置。 希尔排序:(缩小增量排序),不断把待排序的记录分成若干个小组,对同一组内的记录进行排序,在分组时,始终保持当前组内的记录个数超过前面分组排序时组内的记录个数。) ************************************************/ 二、第一小节(目标:理解掌握冒泡思想) 1、给出冒泡排序的定义(25分钟) 将待排序序列中第一个记录的关键字R1.key与第二个记录的关键字R2.key作比较,如果R1.key>R2.key,则交换记录R1和R2在序列中的位置,否则不交换;然后继续对当前序列中的第二个记录和第三个记录作同样的处理,依此类推,知道序列中倒数第二个记录和最后一个记录处理完为止,我们称这样的过程为一次冒泡排序。 2、请学生上台做排序练习(15分钟做题+10分钟讲解) (巩固排序思想的掌握) 第一题: 38 5 19 26 49 97 1 66 第一次排序结果:5 19 26 38 49 1 66 [97] 第二次排序结果:5 19 26 38 1 49 [66 97] 第三次排序结果:5 19 26 1 38 [49 66 97] 第四次排序结果:5 19 1 26 [38 49 66 97] 第五次排序结果:5 1 19 [26 38 49 66 97] 第六次排序结果:1 5 [19 26 38 49 66 97] 第七次排序结果:1 [5 19 26 38 49 66 97] 最后结果序列: 1 5 19 26 38 49 66 97 第二题: 8 7 6 5 4 3 2 1 - 1 -

VB算法-冒泡排序教案

冒泡排序教学设计 班级:高一一班授课教师:袁海军 一、教案背景 模块:算法与程序设计班级:高一(1)班课时数:1课时 所用教材:华师大版《算法与程序设计》教师:袁海军 二、教学设计 1.教学目标 知识与技能:掌握冒泡排序的原理;理解冒泡排序的流程图;学会使用冒泡排序思想设计解决简单排序问题的算法; 过程与方法:进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 情感态度与价值观:培养学生分析问题、发现规律的能力,激发学生学习热情。培养学生联系生活中的算法。 2.教学材料分析 本节是高一信息学科选学模块一《算法和程序设计》部分算法实例章节的排序部分。大纲对冒泡排序部分的要求是“理解/学会冒泡排序的原理和算法”。可见还是比较重要的章节。但是,教材关于排序的讲解不够生动详尽,学生理解起来有些困难。 教学重点:理解冒泡排序原理及它的流程图; 教学难点:理解冒泡排序中的遍、次等概念(即对变量使用的理解);内层循环元素下标的范围; 3.学情分析: 本课程开设对象为本校高一年级学生,在平时的教学过程中我发现,他们对算法部分的相关知识掌握的程度相对较低,学习过程中很容易产生挫败感,因此,我在本次教学过程中注重由浅入深的逻辑,以便他们更好的掌握相关知识。 4.教学策略设计 采用讲解法、演示法、分析归纳法引导学生思考,并设计游戏活动让学生参与。对于重点和难点,化抽象为具体,由特殊到一般,使学生更好的掌握。 三、教学过程 (一)导入:创新情景(1分钟) 通过扑克牌的展示引入排序的概念。 排序:通过调整位置,把杂乱无章的数据变为有序的数据。 (二)新课 为了方便排序,我们将这些无序的数据作为一个数组存放,比如数组a,里面有5个元素。排序的方法很多,这节课我们来学习其中一种比较典型的排序方法――冒泡排序。(1分钟)1.冒泡排序的基本思想(4分钟) 一边讲解一边以文字形式给出冒泡排序的基本思想:把较小的数逐次向上推移的一种排序技术,强调从最后一个元素起,依次比较相邻的两个元素中的数,将较小的数调换到上面。“所 1

冒泡排序法教学设计说明

《冒泡排序法》教学设计 一.教材分析 本节容选自教育《算法与程序设计》第五章第三节。本节课主要讲解冒泡排序思想、算法以及编程思路,下节课让学生进行上机实践。排序算法是使用频率最高的算法之一,而冒泡排序是其中一种很典型而且相对简单的方法。它的学习同时为后面的选择排序做了铺垫。通过冒泡实例的学习,可以提高学生的程序设计能力,为今后在算法与程序设计方面的进一步研究和学习打下基础。 二.学习者分析 通过一段时间的学习,同学们已经了解了程序设计的基本知识,掌握了数组、循环语句等C语言基础知识,具备了一定的编程能力和编程思想。这个阶段的学生,思想活跃,学会了利用自然语言和流程图描述解决问题的算法,对排序中碰到的循环结构的流程图和循环语句以及数组变量的使用方法都已有基础。但由于实践比较少,对以前知识的遗忘率比较高,程序设计思想比较弱。因此由浅入深,逐步引导比较适合学生的学习特征。 三.教学目标 1.知识目标: (1)掌握冒泡排序的原理,能读懂冒泡排序的算法; (2)掌握冒泡排序法的基本过程,理解冒泡排序法的C语言程序; 2.能力目标: (1)学会使用冒泡排序思想设计解决简单排序问题的算法; (2)进一步理解程序设计的基本方法,体会程序设计在现实中的作用; 3.情感目标: 培养学生分析问题、发现规律、解决问题的能力;培养学生良好的程序书写习惯; 四.教学重难点 教学重点:冒泡排序法的基本思想和实现过程。 教学难点:用C语言编写冒泡排序法的程序、冒泡排序的思想。 五.教学方法与策略 本节课将采用讲解法、演示法、讨论合作、分析归纳法引导学生参与思考,用逐步求精的方式降低学生的理解难度,化抽象为具体,由特殊到一般,有效地突出重点突破难点。六.教学资源 教材、扑克牌、黑板等。 七.教学过程

用冒泡排序法排序

/* 用冒泡排序法对一维整型数组中的十个数升序排序 */ #include int main() {int i,j,t,a[10]; printf("Please input 10 integers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) /* 冒泡法排序 */ for(j=0;j<10-i-1;j++) if(a[j]>a[j+1]) {t=a[j];/* 交换a[i]和a[j] */ a[j]=a[j+1]; a[j+1]=t; } printf("The sequence after sort is:\n"); for(i=0;i<10;i++) printf("%-5d",a[i]); printf("\n"); system("pause"); return 0; } 其中i=0时: j从0开始a[0],a[1]比较大小,把其中的较大者给a[1],然后j++,a[1]和a[2]再比较,再把两者中的较大者给a[2],这样a[0],a[1],a[2]中的最大者已经交换到a[2]中,这样继续直到j=10-i-1=9这样 a[9]中的为10个数中的最大数。 然后i=1时: 由于最大数已找到并放到a[9]中,所以这一次循环j最大只需到10-i-1=8,即a[8]即可,再次从j=0开始a[j]和a[j+1]两两比较交换,最后次大数放到a[8]中 然后i++,继续... 当i=9时已经过9次两两比较完成所有排序,i<9不再成立退出比较。 对于n个数,只需要进行n-1次外循环的两两比较就完成排序。 至于按降序排列只需将if(a[j]>a[j+1])改为if(a[j] int main() {int i,j,t,a[10],flag; printf("Please input 10 integers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) /* 改进型冒泡法排序 */

选考:冒泡排序算法程序实现

选考:冒泡排序算法程序实现 选择题: 1、某品牌汽车4S店前8个月的销售数量存放在数组 a中,如下表所示 若采用冒泡排序算法对这些数据进行升序排列,那么在完成第一遍的排序时,数组元素a(1)和a(8)的值分别为() A.508 300 B.100 300 C.100 355 D.100 125 对其进行排序,若完成第一遍时的结果是:35,88,110,48,64,则完成第二遍时的结果是 (A)35,88,110,48,64 (B)35,48,88,64,110 序,则下列选项中可能是原始数据序列的是 (A)155,170,186,165,153 (B)155,186,165,153,170 (C)170,155,165,153,186 (D)155,165,153,170,186 5.对5个数字“2、8、6、1、7”进行两遍冒泡排序后即为某密码锁的密码,该密码可能是(A)12687 (B) 12867 (C)28617 (D)12678 6、有6个学生的身高(单位:厘米)分别是124、126、120、123、125、128;若采用冒泡排序算法对其进行递减排序,则 ①第2趟排序共需交换数据的次数是() ②6个数组元素需排序趟,共比较次,总共需要交换的次数为______,

程序设计题: 常见的冒泡排序算法程序实现(以升序排序为例) For i = 1 To ______ For j = 8 To ________ If d(j) < d(j - 1) Then k = d(j) __________ d(j - 1) = k End If Next j Next i 1、(2012第5套).校园十佳歌手比赛得分成绩已经出来,为了选出前十名选手,小明编写了如下Visual Basic程序,从所有选手中按得分从高到低选出前十名。选手编号和得分已分别保存在数组a和b中(共23名选手,编号为XS01到XS23),原始数据显示在列表框List1中,运行结果显示在列表框List2中,程序运行界面如图所示。 程序代码如下: Dim a(1 To 23) As String, b(1 To 23) As Single Private Sub Command1_Click() Dim i As Integer, j As Integer Dim s As String, t As Single For i = 1 To 22 For j = 1 To 23 - i If ① Then s = a(j): a(j) = a(j + 1): a(j + 1) = s t = b(j): b(j) = b(j + 1): b(j + 1) = t End If

相关文档
最新文档