《C语言程序设计》教学设计日期:年月日
教学进度设计
利用一维数组处理同类型的批量数据
教学详案
步骤一:复习与导入(时间:5分钟)
复习:C语言的基本数据类型?——整型、实型、字符型
导入:若定义若干个变量来存储多个同类型的数据,怎么写?有更简捷的方法?在C 语言中,数据类型除了基本类型(整型、实型、字符型),还有构造类型,包括数组、结构体、共用体和枚举类型。其中,数组是将相同类型的若干数据按序组合在一起,即数组是有序同类型数据的集合。本单元主要学习数值数组和字符数组,其他类别的数组将在后续单元中陆续学习。
单元学习目标:能利用一维数组、二维数组和字符数组处理同类型的批量数据。
步骤二:任务1:掌握一维数组的定义、初始化和引用方法(时间:40分钟)
1、定义一维数组的方法
数组和变量一样,要先定义后使用。
定义一维数组的形式:类型标识符数组名[常量表达式];
说明:(1)类型标识符可以是基本类型或构造类型。
(2)常量表达式表示数据元素的个数,也称为数组长度。
例如:int a[10];
数组有10个整型元素:a[0] ~ a[9]。元素编号是从0开始。
系统为数组a分配连续的10个整型内存空间,用来存储10个数组元素。
C语言规定,数组名可以代表数组的首地址(数组首元素a[0]的地址)。
【学习检验】教材单元练习第1题、第3题。
2、一维数组的初始化
在定义数组时,对数组元素赋初值。初值用{ }括起来,初值之间用逗号隔开。
(1)对全部元素赋初值:int a[5]={1,2,3,4,5}; 或int a[ ]={1,2,3,4,5};
结果:a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5
(2)对部分元素赋初值:int a[5]={1,2,3};
结果:a[0]=1,a[1]=2,a[2]=3,a[3]=0,a[4]=0
注意:初值个数不能超过指定的元素个数。int a[5]={1,2,3,4,5,6}; //错误
在定义数组之后,不能一次性对整个数组的所有元素赋值,而只能对每个元素逐个赋值。例如:int a[5]; //定义数组
a[5]={1,3,5,7,9}; //错误
a[0]=1; a[1]=3; a[2]=5; a[3]=7; a[4]=9; //正确
3、一维数组元素的引用
C语言规定,只能引用某个数组元素而不能一次引用整个数组的全部元素。
一维数组元素的引用形式:数组名[下标] 其中,下标就是数组元素的编号。
【例3.1】将一组数据(如10个整数)倒序输出。
【引导思考】引导学生用变量来实现的方法及弊端。
int a0, a1, a2, ..., a9;
a0=0; a1=1; a2=2;...; a9=9;
printf(“%d ”, a0);
printf(“%d ”, a1);
printf(“%d ”, a2);
......
printf(“%d ”, a9);
【引导思考】将上面的顺序结构改为循环结构——改用数组来实现(精益求精)。
【引导总结】将数组和循环结构相结合,可有效处理同类型的批量数据,大大提高工作效率。
【学习检验】教材单元练习第10题。
【学以致用】
(1)教材单元练习第13题:输入10个整数,出其中的最大值。
(2)教材例3.2:输入一个整数,输出该整数从高位到低位的各位数字。
(3)教材例3.3:输入若干名学生的成绩,输出成绩单,并统计输出最高分、最低分和平均分。
(4)教材单元练习第15题:输出斐波那契(Fibonacci)数列(其概念见教材例4.41)中200以内的数。
步骤三:任务2:掌握一维数组处理批量同类型数据的方法(时间:40分钟)一维数组广泛应用于对多个同类型的数据进行存取、排序等操作的场合。
由于是对多个数进行排序,自然会想到利用数组来保存和管理参与排序的多个数据。
排序算法有多种,在此只介绍冒泡排序法。
【例3.4】对n个数进行排序(由小到大)。
冒泡排序法的思路:从第1个数开始,和下邻数比较,小数上浮,大数下沉。c语言的冒泡排序算法
【动画演示】用冒泡法对5个数(如:9、7、5、8、0)进行由小到大排序的过程。
【引导归纳】
【代码实现】
外层for循环控制比较轮数,内层for循环控制第i轮比较的次数。
【引导思考】若参与排序的多个数据在某轮比较前,恰好已经按照由小到大排序(如特殊情况:才开始就已排好序),则上述程序有何弊端?——后面的几轮比较纯粹浪费时间。如何改进?——想办法提前结束循环。如何实现?——利用第2章所学的break语句,增设一个标志变量,记录在某轮比较过程中有无交换。
【代码改进:精益求精、节能】
【引导思考与实践】输出比较的轮数,验证上述想法,看有没有得到改进(实践是检验真理的唯一标准)。
【举一反三】选择排序算法及实现。
步骤四:概括基本内容,归纳重点内容(时间:5分钟)
1、引导学生概括本次课的基本内容,归纳重点内容(一维数组的定义、初始化、引用及应用方法)。
2、作业布置:通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题,学以致用;预习下次课内容(二维数组)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论