圳)职业技术学院 Shenzhen Polytechni 第五单元(2):数组的应用 教学内容 数组的排序、插入等应用(重点讲解编程思路) 教学目标 应知 数组在实际问题解决中的应用 应会 驅能够分析具体问题,从而用数组解决,掌握冒泡排序的思 路和实现 难点 驅冒泡法排序 教学方法 项目拓展,实例分析引导 教学过程 复习数组的定义、初始化、引用、输入、输出 粤定义一个整型数组a[10],从键盘输入、输出。 n Define an integer array including ten datas, then input the datas from the keyboard and output them to the screen. 卫学生易错 对一个整型数组按照从小到大进行排序(算法是重点) Sort an integer array using bubble sorting. (Arithmetic is important 冒泡算法 1.从最后一个元素开始(设置循环的初始值) 2.根据排序的顺序,两相邻元素进行比较和交换(内层循环) 进行下一轮相邻数据的比较交换(外层循环) 3.优化第2步的程序:如果初始数组数据是1,2,3,5,4如何在用冒泡法排序时 优化程序。(思考题,学生提出的问题) 要点 计算机系乌云高娃 Wygwl2lcn, com第22页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 22 页 共 83 页 第五单元(2):数组的应用 教学内容 数组的排序、插入等应用(重点讲解编程思路) 教学目标 应知 数组在实际问题解决中的应用 应会 能够分析具体问题,从而用数组解决,掌握冒泡排序的思 路和实现 难点 冒泡法排序 教学方法 项目拓展,实例分析引导 教学过程 1. 复习数组的定义、初始化、引用、输入、输出。 定义一个整型数组 a[10],从键盘输入、输出。 Define an integer array including ten datas , then input the datas from the keyboard and output them to the screen. 学生易错 2. 对一个整型数组按照从小到大进行排序(算法是重点) Sort an integer array using bubble sorting .(Arithmetic is important ) 冒泡算法: 1. 从最后一个元素开始(设置循环的初始值) 2. 根据排序的顺序,两相邻元素进行比较和交换(内层循环) 3. 进行下一轮相邻数据的比较交换(外层循环) 3. 优化第 2 步的程序:如果初始数组数据是 1,2,3,5,4 如何在用冒泡法排序时 优化程序。(思考题,学生提出的问题) 要点
圳职业技术学院 Shenzhen Polytechnic 粤在某一趟循环比较中如果没有发生数据交换,则表明数据已然有序。 4.思考题:在第2步数组排序的基础上,进一步将一个数据插入一个有序数 组中(算法是重点)(通过分析、提出算法、尝试实现) n Insert a data to a sorted array 插入算法的步骤 )数据初始化 2)输入待插入数据 3)找到待插入位置 4)将待插入位置空出(从插入位置i起,把以后的数据后移,以备插入数据) 5)插入数据 6)输出结果 学生容易出错的地方 数组用方括号 用 scanf语句时,数组元素前应加取地址符号 语句错误,不了解数组定义时与数组元素使用时的区别: scanf(“%d”,a[10]) 企图在一个for语句中输入、输出数据,但没有使用复合语句 问题与讨论 在数组中插入数据时,引起其他数组元素的移位,怎样可以解决?(铺垫链表) 如果考虑数据插入数组头部或数组尾部时程序要否修改?怎样修改? 小结(可由问题与讨论方式给出) 采用数组编程时通常需要循环语句,此时要注意循环三要素的确定 通过物理分析,考虑数组元素的下标,总结普遍规律,然后转化为程序语言。 课后任务 自 完成思考题 计算机系乌云高娃y82 acn. com第23页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 23 页 共 83 页 在某一趟循环比较中如果没有发生数据交换,则表明数据已然有序。 4. 思考题:在第 2 步数组排序的基础上,进一步将一个数据插入一个有序数 组中(算法是重点)(通过分析、提出算法、尝试实现) Insert a data to a sorted array. 插入算法的步骤 1)数据初始化 2)输入待插入数据 3)找到待插入位置 4)将待插入位置空出(从插入位置 i 起,把以后的数据后移,以备插入数据) 5)插入数据 6)输出结果 学生容易出错的地方 数组用方括号 用 scanf 语句时,数组元素前应加取地址符号 语句错误,不了解数组定义时与数组元素使用时的区别:scanf(“%d”, a[10]) ; 企图在一个 for 语句中输入、输出数据,但没有使用复合语句。 问题与讨论 在数组中插入数据时,引起其他数组元素的移位,怎样可以解决?(铺垫链表) 如果考虑数据插入数组头部或数组尾部时程序要否修改?怎样修改? 小结(可由问题与讨论方式给出) 采用数组编程时通常需要循环语句,此时要注意循环三要素的确定 通过物理分析,考虑数组元素的下标,总结普遍规律,然后转化为程序语言。 课后任务 完成思考题
圳)职业技术学院 Shenzhen Polytechni 粤整理笔记 求1-256之间的回文数 查找一个数是否在数组中存在并打印相应下标。 计算机系乌云高娃 Wygwl2lcn, com第24页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 24 页 共 83 页 整理笔记 求 1-256 之间的回文数 查找一个数是否在数组中存在并打印相应下标