《C语言程序设计 教案3-1 利用一维数组处理同类型的批量数据(2课时).docx》由会员分享,可在线阅读,更多相关《C语言程序设计 教案3-1 利用一维数组处理同类型的批量数据(2课时).docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计教学设计 日期:年月日教学内容利用一维数组处理同类型的批量数据教学学时2授课教师班级地点周次星期节次教学 目标素质目标知识目标能力目标(1)基本职业素养:遵守工作时间, 使用实践设备时注意用电安全,实践设 备使用完毕后要断电并放于指定位置, 程序设计要注重工程规范,养成良好的 工作习惯。(2)团结协作素养:小组内成员互查 程序代码书写规范性、准确性和完整性, 取长补短,具有责任意识、团队意识与 协作精神。(3)自主学习素养:能根据任务要求, 查找相关资料解决实际问题;能自主完 成练习,培养自主学习的意识与一丝不 苟、实事求是的工作作风。(4)思政和劳动素养:具有一定的辩 证唯物主
2、义运用能力、安全意识、劳动 意识、创新意识、创新能力和强烈的爱 国主义精神。(1)理解数组的 概念(2)掌握一维数 组的定义、初始化和 引用的方法(3)掌握冒泡排 序或选择排序的算 法(4) 了解数组在 嵌入式中的应用能用数组解 决实际问题教学重点(1) 一维数组的定义、初始化和引用的方法(2)冒泡排序的算法教学难点冒泡排序的算法能力训练 任务任务1:掌握一维数组的定义、初始化和引用方法任务2:掌握一维数组处理批量同类型的数据的方法教学材料(1)教材:朱琨C语言程序设计,机械工业出版社,978-7-111-66954-8, 2021(2)教学资源:电子教案、教学课件、微课视频、在线开放课程(3
3、)仪器与设备:电脑(装有VC+开发环境)教学进度设计步骤教学内容及目标思政元素教师活动学生活动时间一、复习与 导入复习:C语言的基本数据类型? 导入:若定义同类型的若干个变 量,有更简捷的方法?一一数组: 有序同类型数据的集合。温故知新、善于 发现问题引导启发、布 置学习任务思考、回答、 明确学习任 务5m i n二、实施任 务1:掌握 一维数组的 定义、初始 化和引用方 法1、定义一维数组的方法(1) 一般形式类型标识符数组名常量表达 式;(2) 一维数组在内存中的存储形 式:连续空间、数组元素的编号、 数组名代表数组的首地址2、一维数组的初始化对全部或部分元素赋初值3、一维数组元素的引用数
4、组名下标知识迁移,集中、有序管理对比用多个 变量处理数 据,引导学生 体会使用数 组和循环结 构相结合处 理同类型的 多个数据的 好处,并加以 运用,巡回指 导听讲,理解, 分析、编写 和运行教材 例题程序40m in三、实施任 务2:掌握 一维数组处 理批量同类 型数据的方 法冒泡排序(1)算法分析(2)代码实现和改进精益求精、节能 (改进排序代 码);实践是检 验真理的唯一 标准(实验验证)动画演示冒 泡排序算法, 代码分析,引 导学生改进 代码、编写完 整的排序程 序,巡回指导听讲,理解, 分析、编写 和运行教材 例题程序40m i n四、总结概括基本内容,归纳重点内容自主学习引导学生归
5、 纳总结,然后 布置课后任 务思考,记录, 整理场地5m i n作业通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题(可穿插到上述任务 中);预习下次课内容(二维数组)后会 课体1 .通过变量,引导学生对比学习数组,深刻体会数组在处理同类型的多个数据的好处(同 类问题采用不同数据结构处理时,对应的算法也不同)。2 .在冒泡排序法程序教学中,循序渐进,引导启发,有效融入课程思政:精益求精、节能、 实践是检验整理的唯一标准。利用一维数组处理同类型的批量数据教学详案步骤一:复习与导入(时间:5分钟)复习:C语言的基本数据类型?一一整型、实型、字符型导入:若定义若干个变量来存储多个同类
6、型的数据,怎么写?有更简捷的方法?在C 语言中,数据类型除了基本类型(整型、实型、字符型),还有构造类型,包括数组、结构 体、共用体和枚举类型。其中,数组是将相同类型的若干数据按序组合在一起,即数组是有 序同类型数据的集合。本单元主要学习数值数组和字符数组,其他类别的数组将在后续单元 中陆续学习。单元学习目标:能利用一维数组、二维数组和字符数组处理同类型的批量数据。步骤二:任务1:掌握一维数组的定义、初始化和引用方法(时间:40分钟)1、定义一维数组的方法数组和变量一样,要先定义后使用。定义一维数组的形式:类型标识符数组名常量表达式;说明:(1)类型标识符可以是基本类型或构造类型。(2)常量表
7、达式表示数据元素的个数,也称为数组长度。例如:int a10;数组有10个整型元素:a0-a9o元素编号是从0开始。系统为数组a分配连续的10个整型内存空间,用来存储10个数组元素。C语言规定,数组名可以代表数组的首地址(数组首元素a0的地址)。【学习检验】教材单元练习第1题、第3题。2、一维数组的初始化在定义数组时,对数组元素赋初值。初值用 括起来,初值之间用逗号隔开。(1)对全部元素赋初值:int a5= 1,2,345; 或int a = 1,2,3,4,5;结果:a0=l, al=2, a2=3, a3=4, a4=5(2)对部分元素赋初值:inta5= 1,2,3;结果:a0=l,
8、al=2, a2=3, a3=0, a4=0注意:初值个数不能超过指定的元素个数。int a5= l,2,3,4,5,6);/错误 在定义数组之后,不能一次性对整个数组的所有元素赋值,而只能对每个元素逐个赋值。例如:inta5;定义数组a5= 135,7,9;错误a0=l; al=3; a2=5; a3=7; a4=9; 正确3、一维数组元素的引用C语言规定,只能引用某个数组元素而不能一次引用整个数组的全部元素。一维数组元素的引用形式:数组名下标 其中,下标就是数组元素的编号。【例3.1】将一组数据(如10个整数)倒序输出。【引导思考】引导学生用变量来实现的方法及弊端。int a0, al,
9、a2,a9;a0=0; al = l; a2=2;.; a9=9;printfCc%d ”, aO);printf(d ”, al);printfC6%d ”, a2);printf(“d ”, a9);【引导思考】将上面的顺序结构改为循环结构一一改用数组来实现(精益求精)。/include int main(void)int i, a10;for(i=0; i=0; i)printf(n%d n, ai); printf(nnn);【引导总结】将数组和循环结构相结合,可有效处理同类型的批量数据,大大提高工作效率。【学习检验】教材单元练习第10题。【学以致用】(1)教材单元练习第13题:输入1
10、0个整数,找出其中的最大值。(2)教材例3.2:输入一个整数,输出该整数从高位到低位的各位数字。(3)教材例33输入若干名学生的成绩,输出成绩单,并统计输出最高分、最低分和 平均分。(4)教材单元练习第15题:输出斐波那契(Fibonacci)数列(其概念见教材例4.41) 中200以内的数。步骤三:任务2:掌握一维数组处理批量同类型数据的方法(时间:40分钟)一维数组广泛应用于对多个同类型的数据进行存取、排序等操作的场合。由于是对多个数进行排序,自然会想到利用数组来保存和管理参与排序的多个数据。排序算法有多种,在此只介绍冒泡排序法。【例3.4】对n个数进行排序(由小到大)。冒泡排序法的思路:
11、从第1个数开始,和下邻数比较,小数上浮,大数下沉。【动画演示】用冒泡法对5个数(如:9、7、5、8、0)进行由小到大排序的过程。a09al7a 25a 38a 40【引导归纳】对n个数排序,雪宴进行(nl)轮比较:第1轮 要进行(n-1)次两两比较;第2轮 要进行(n-2)次两两比较;*第i轮 妥进行(n-i)次两两比较;第(nl )轮要进行1次两两比较。【代码实现】#define N 5宏定义参与排序的数据个数int aN;存放待排序的一组数据int i, j, t;for(i=l; iN; i+)/N个数,共霄比较N-1 轮(forQ=0; jN-i; j+) 第i轮霄妥比较N-i次(叫+
12、1)依次比较两个相邻的数,将大数放后面=aj; aj=aj4-l; aj+l=t;交换)外层for循环控制比较轮数,内层for循环控制第i轮比较的次数。【引导思考】若参与排序的多个数据在某轮比较前,恰好已经按照由小到大排序(如特 殊情况:才开始就已排好序),则上述程序有何弊端?一一后面的几轮比较纯粹浪费时间。 如何改进?一一想办法提前结束循环。如何实现?一一利用第2章所学的break语句,增设 一个标志变量,记录在某轮比较过程中有无交换。【代码改进:精益求精、节能】#define N 5宏定义参与排序的数据个数int aN;存放待排序的一组数据int i9 j919 swap flag;for
13、(i=l; iN; i+)/N个数,共雷比较N-1 轮 swap_flag=O;交换标志:0-无交换,1-有交换for(jb; jaj+l) 依次比较两个相邻的数,将大数放后面(aj=aj+l; aj+l=t; $wap_flag=l; 交换if(swap_flag=0) break; 若本轮无交换,则结束比较 【引导思考与实践】输出比较的轮数,验证上述想法,看有没有得到改进(实践是检验 真理的唯一标准)。【举一反三】选择排序算法及实现。步骤四:概括基本内容,归纳重点内容(时间:5分钟)1、引导学生概括本次课的基本内容,归纳重点内容(一维数组的定义、初始化、引用 及应用方法)。2、作业布置:通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题, 学以致用;预习下次课内容(二维数组)。