C语言《排序算法》教学设计Word文档下载推荐.doc

上传人:b****0 文档编号:12931171 上传时间:2022-09-30 格式:DOC 页数:9 大小:267.54KB
下载 相关 举报
C语言《排序算法》教学设计Word文档下载推荐.doc_第1页
第1页 / 共9页
C语言《排序算法》教学设计Word文档下载推荐.doc_第2页
第2页 / 共9页
C语言《排序算法》教学设计Word文档下载推荐.doc_第3页
第3页 / 共9页
C语言《排序算法》教学设计Word文档下载推荐.doc_第4页
第4页 / 共9页
C语言《排序算法》教学设计Word文档下载推荐.doc_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

C语言《排序算法》教学设计Word文档下载推荐.doc

《C语言《排序算法》教学设计Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《C语言《排序算法》教学设计Word文档下载推荐.doc(9页珍藏版)》请在冰豆网上搜索。

C语言《排序算法》教学设计Word文档下载推荐.doc

二、学情分析

教学对象为五年制高职计算机软件专业二年级学生,他们具有一定的计算机操作能力,但是在程序设计方面是零基础,并且他们的数学理论基础比较薄弱。

同时,他们正处于17,18岁的年纪,思维活跃、意识超前,具有极强的好奇心与求知欲。

但由于学生的抽象思维和自主学习能力较薄弱,又厌烦枯燥的文字说教,在教学过程中要尽量使用简单直观的演示和表演方式,使枯燥乏味的理论知识能够生动起来,从而突破零起点、高台阶的瓶颈。

在完成本节的学习后,学生可以具有一定的结合数组和算法处理数据的能力。

三、教学目标:

1、学会冒泡排序和选择排序的思维方法。

2、能够熟练应用冒泡排序算法进行排序运算,在讨论的基础上学会使用选择排序算法解决同样的问题。

3、在理解程序设计基本方法的基础上,拓展其在现实中的作用。

4、通过程序设计和表演互动的过程,激发学生在预测的基础上追求结果的的成就感。

四、教学重、难点

项目

内容

解决措施

教学重点

冒泡排序的基本原理

通过表演设疑,展示结果,分析程序结构,探究动作与程序关系,结合动画演示使抽象的原理变得具体形象以帮助学生掌握学习内容。

教学难点

五、教法、学法

教法设计:

情境导入法、对比教学法、讨论式教学法、分层教学法

学法指导:

合作探究、自主学习、实践操作

六、教学准备

1、教学环境:

多媒体网络机房。

2、教学准备:

调试机房,制作课件,制作演示动画,程序调试,指导学生演练。

3、学生分组:

按照一贯的分组方式,组内预习本节内容。

七、教学过程

教学

环节

主要教学活动及过程

教师活动

学生活动

设计意图

(一)

情景

导入

5分钟

排序规则:

6名学生从左至右相邻两个学生比较手中牌的大小,如果前一个学生的牌比后一个学生的大,则两人交换位置,直至不需要再移动,排好所有牌。

排序表演:

将6张扑克牌随机发给6名学生,他们先向台下的学生展示一下自己手中的牌,然后转过来背对学生。

接到开始信号后,按规则排序。

排好后,再次面向全体学生,此时,学生手中的牌从左至右已按升序排好。

思考:

如何用程序表达排序过程?

本节课任务:

编写程序完成排序过程。

宣布表演规则。

设疑。

参与表演的学生快速比较、移动,完成表演过程。

其他学生观察并思考会产生什么结果。

激发学生兴趣与求知欲,在学生疑问中导入本节教学内容。

(二)

新知

新授

15

分钟

交待:

表演所遵循的排序规则,就是排序算法中冒泡排序的过程。

通过讨论,分解冒泡排序过程。

1、如何存储6个数;

inta[6]={7,10,6,5,9,8};

创建一个数组用于存放六个操作数。

2、如何实现两个数互换;

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

i代表数组元素位置;

t是两数交换所借助的第

三变量。

3、如何表达比较的趟数和每趟比较的次数?

在每趟比较中,还会进行N次两数的比较,可以使用循环嵌套的方法。

外循环代表比较趟数,内循环表示每趟比较的次数。

首先确定外循环次数,通过观察刚才学生表演过程可知在整个过程中进行了5趟排序,即外循环为5次。

然后确定内循环次数,仍然通过观察表演过程可知:

第1趟比较,两两比较,4次;

第2趟比较,两两比较,3次;

第3趟比较,两两比较,2次;

第4趟比较,两两比较,1次;

第5趟比较,两两比较,0次。

因此,内循环次数随外循环次数增多而减少,整理成代码为:

for(j=0;

j<

5;

j++)

{

for(i=0;

i<

5-j;

i++)

{……}

}

4.整理完整代码

#include<

stdio.h>

main()

{

inta[6]={7,10,6,5,9,8};

inti,j,t;

for(j=0;

j++)

for(i=0;

i++)

if(a[i]>

a[i+1])

{t=a[i];

}

printf("

sortednumbers:

\n"

);

for(i=0;

6;

i++)

printf("

%d"

a[i]);

与学生讨论,分析冒泡排序过程,将其分解为三个主要步骤,给出三个步骤解决方法。

给出完整程序代码。

学生与教师共同讨论,分析排序过程。

学生调试代码并运行。

通过观察得出结果。

熟悉冒泡排序过程。

同时锻炼学生归纳总结能力。

让学生体会代码运行的过程及结果。

(三)

认知

提升

分钟

1.设置疑问——递进思考

(1)位置

a.每次比较的两数位置上有什么关系?

(2)变化

b.每趟排序后数列发生什么变化?

(3)关系

c.内外循环的次数有什么关系?

2.分层教学——动画助学

观察动画演示冒泡排序对数列进行升序排序的过程

3.要点总结——拎清特点

(1)6个数进行5趟加工,n个数要进行n-1趟加工

(2)每一趟比较次数越来越少

(3)n个数第j趟加工时,比较次数是(n-1)-1

4.填流程图——理清思路

5.探究实质——深入挖掘

(1)内循环次数不断变少的原因?

(2)为什么内循环结束条件变化,开始条件不变?

(3)你能为冒泡法起个新名字吗?

并说明起这个名字的理由。

6.程序动作——预测结果

截取程序片段,学生演示该片段所对应动

作,预测这段代码会产生怎样效果。

冒泡排序中是相邻两数比较,如果比较的不是相邻两数,排序过程会怎样呢?

给出思考问题,并利用电子教室将演示动画发送给每个学生。

教师对原理特点进行总结。

给出冒泡排序流程图,让学生补充完整。

提出深入问题。

在此过程中,巡查学生讨论情况,捕捉学生中存在的共性问题及时解决。

选择代码片段。

给出新规则,在学生指导下完成排序过程。

学生在观察动画演示同时讨论老师给出的思考问题。

学生对比自己总结的答案。

学生组内合作讨论,完成流程图填空。

组内讨论教师提出的问题

学生演示动作。

讨论,指导教师完成排序过程。

由结果的表象进一步向原理探索。

动画演示使抽象过程变得生动形象,有助于学生理解。

帮助学生拎清程序结构,为整合代码做准备。

深度探究原理细节。

用程序指导动作。

拓展学生发散思维的能力。

(四)

发散

思维

15

同样6个数,同样按升序排列,不同排序规则,中间会发生什么样的变化?

1、新排序规则(选择排序):

比较完所有的数,将最小的数与第一个数调换位置,直到所有数排完。

学生按照新规则指导教师进行操作,完成6个数的排序过程

2、用动画分析原理过程

动画演示选择排序对这6个数整个排序过程。

3、讨论分析

<

1>

进行几趟排序,每趟排序中的比较次数

5趟排序完成整个过程,每趟比较次数递减。

2>

每趟排序后数列有什么变化

每趟排序后都有一个数的位置确定下来。

3>

每次比较的两数位置的关系

两数位置没有固定关系。

4、总结过程

从n个数中选出最小数,然后将最小数与第一个数交换位置;

除第一个数外,其余n-1个数再按步骤1的方法选出次小的数,与第2个数交换位置;

重复步骤1(n-1)遍,最后形成递增数列

5、编写关键语句

如何存储6个同数;

参考答案:

如何确定最小值并与“第一个”数交换;

if(a[min]>

a[j])min=j;

(确定最小值位置)

temp=a[i];

a[i]=a[min];

a[min]=temp;

如何表达比较的趟数和每趟比较的次数?

for(i=0;

=4;

for(j=i+1;

=5;

j++)

{……}

总结选择排序执行过程。

与学生讨论分析,找出过程中的关键步骤。

让学生合作编写关键步骤的语句。

学生与教师讨论分析关键步骤,并合作完成关键步骤的语句。

动画演示使抽象过程变得生动形象,有助于

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1