函数的高级应用PPT讲稿.ppt

上传人:石*** 文档编号:69815155 上传时间:2023-01-08 格式:PPT 页数:17 大小:872.50KB
返回 下载 相关 举报
函数的高级应用PPT讲稿.ppt_第1页
第1页 / 共17页
函数的高级应用PPT讲稿.ppt_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《函数的高级应用PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《函数的高级应用PPT讲稿.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、函数的高函数的高级应用用第1页,共17页,编辑于2022年,星期五课程内容安排课程内容安排数组作为函数参数。数组作为函数参数。查找算法的函数实现。查找算法的函数实现。排序算法的函数实现。排序算法的函数实现。函数模板的定义和应用。函数模板的定义和应用。函数重载的应用。函数重载的应用。第2页,共17页,编辑于2022年,星期五数组作为函数参数数组作为函数参数 数组作为函数参数,是指以数组名作为实际参数传递给数组作为函数参数,是指以数组名作为实际参数传递给函数,其要求形参和相对应的实参都必须是类型相同的函数,其要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不数

2、组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。此外,用数组名作函数参数时,一致时,即会发生错误。此外,用数组名作函数参数时,不是进行值的传送,即不是把实参数组的每一个元素的不是进行值的传送,即不是把实参数组的每一个元素的值都赋予形参数组的各个元素,而是是地址的传送,也值都赋予形参数组的各个元素,而是是地址的传送,也就是说把实参数组的首地址赋予形参数组名。就是说把实参数组的首地址赋予形参数组名。第3页,共17页,编辑于2022年,星期五查找的函数实现查找的函数实现 所谓查找是根据用户指定的查找目标,在以某一数据结所谓查找是根据用户指定的查找目标,在以某一数据结构存储的数据中

3、进行检索查询,一直到找到该目标或查构存储的数据中进行检索查询,一直到找到该目标或查找失败。查找时实际应用中使用非常频繁的,因此经常找失败。查找时实际应用中使用非常频繁的,因此经常将查找封装成函数,以便在其他函数中直接调用。本节将查找封装成函数,以便在其他函数中直接调用。本节要介绍的是针对所有数据结构而言两种通用的查找方法:要介绍的是针对所有数据结构而言两种通用的查找方法:顺序查找和折半查找的函数实现。顺序查找和折半查找的函数实现。第4页,共17页,编辑于2022年,星期五顺序查找顺序查找 顺顺序序查查找找就就是是在在一一个个已已知知无无序序队队列列中中找找出出与与给给定定关关键键字字相相同同的

4、的数数的的具具体体位位置置。顺顺序序查查找找的的原原理理是是让让关关键键字字与与队队列列中中的的数数从从第第一一个个开开始始逐逐个个比比较较,直直到到找找出出与与给给定定关关键键字字相相同同的的数数为为止止,如如果果到到查查找找到到队队列列的的最最后后一一个个元元素素还还未未找找到到,则则查查找找失失败。顺序查找的实现流程如图败。顺序查找的实现流程如图9.4所示。所示。第5页,共17页,编辑于2022年,星期五折半查找的函数实现折半查找的函数实现 所所谓谓折折半半查查找找是是指指在在数数组组基基本本有有序序下下,从从初初始始的的查查找找数数组组开开始始,每每次次与与当当前前查查找找区区间间的的

5、中中间间点点位位置置上上的的元元素素值值进进行行比比较较,相相同同则则查查找找成成功功,不不成成功功则则当当前前的的查查找找区区间间就就缩缩小小一一半半。这这一一过过程程不不断断重重复复直直至至找找到到目目标标值值在在数数组组中中的的位位置置,或或者者直直至至当当前前的的查查找找区区间间为为空空(即即查查找找失失败败)时为止,流程图如图时为止,流程图如图9.6所示。所示。第6页,共17页,编辑于2022年,星期五除了查找外,排序也是实际程序中的一项基本应用。由于除了查找外,排序也是实际程序中的一项基本应用。由于实际工作中处理的数量巨大,所以排序对算法本身的速度实际工作中处理的数量巨大,所以排序

6、对算法本身的速度要求很高。本节将介绍要求很高。本节将介绍C+中使用函数实现两种常见的排中使用函数实现两种常见的排序算法:冒泡排序算法和快速排序算法。序算法:冒泡排序算法和快速排序算法。排序的函数实现排序的函数实现 第7页,共17页,编辑于2022年,星期五冒泡排序是一种最为常见也最原始的排序方法,其实现思想是依冒泡排序是一种最为常见也最原始的排序方法,其实现思想是依次两两比较待排序的数组元素;若为逆序(递增或递减)则进行次两两比较待排序的数组元素;若为逆序(递增或递减)则进行交换,将待排序元素从左至右比较一遍称为一趟交换,将待排序元素从左至右比较一遍称为一趟“冒泡冒泡”。每趟。每趟冒泡都将待排

7、序列中的最大关键字交换到最后(或最前)位置,冒泡都将待排序列中的最大关键字交换到最后(或最前)位置,直到全部元素有序为止。直到全部元素有序为止。冒泡排序的函数实现冒泡排序的函数实现 第8页,共17页,编辑于2022年,星期五由于冒泡排序使用了一个双重循环,因此不管数组是否基由于冒泡排序使用了一个双重循环,因此不管数组是否基本有序,都必须完成本有序,都必须完成n2次比较,这对于排序来说是非常影次比较,这对于排序来说是非常影响效率的。而快速排序是对冒泡排序的一种改进,快速排响效率的。而快速排序是对冒泡排序的一种改进,快速排序的基本思想是:通过一趟排序将要排序的数据分割成独序的基本思想是:通过一趟排

8、序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。据变成有序序列。快速排序的函数实现快速排序的函数实现 第9页,共17页,编辑于2022年,星期五函数模板函数模板 函数模板是函数模板是C+的新特性,这个概念在的新特性,这个概念在C语言中是没有的。与语言中是没有的。与函数不同的是,函数模板不是一个实实在在的函数

9、,函数不同的是,函数模板不是一个实实在在的函数,而是对逻辑功能相同,但数据类型不同的一族函数的而是对逻辑功能相同,但数据类型不同的一族函数的统一描述。利用函数模板,可以对函数的类型(返回统一描述。利用函数模板,可以对函数的类型(返回类型,以及参数类型)进行参数化处理,也就是函数类型,以及参数类型)进行参数化处理,也就是函数的类型也可以象变量一样改变。利用函数模板可以用的类型也可以象变量一样改变。利用函数模板可以用一种逻辑过程,处理不同类型的数据,从而极大地提一种逻辑过程,处理不同类型的数据,从而极大地提高了编程的效率。高了编程的效率。第10页,共17页,编辑于2022年,星期五函数重载函数重载

10、 读者知道,在读者知道,在C+程序中不允许有相同的函数出现,否则调程序中不允许有相同的函数出现,否则调用时无法区分到底使用哪一个。区分两个函数靠的不仅是用时无法区分到底使用哪一个。区分两个函数靠的不仅是函数名,还有函数的参数列表。如果多个函数拥有相同的函数名,还有函数的参数列表。如果多个函数拥有相同的函数名,但参数列表不同,这是函数名,但参数列表不同,这是C+所允许的,这种方式所允许的,这种方式称为函数重载。称为函数重载。第11页,共17页,编辑于2022年,星期五小结小结 本章作为第本章作为第8章函数的一个延伸,主要就函数的相关高级应章函数的一个延伸,主要就函数的相关高级应用作了具体讲解。针

11、对数组作为函数的参数进行传递,用作了具体讲解。针对数组作为函数的参数进行传递,本章通过具体的示例进行了介绍。此外,在现实生活本章通过具体的示例进行了介绍。此外,在现实生活中,查找和排序的使用较为频繁,本章分别介绍了几中,查找和排序的使用较为频繁,本章分别介绍了几种常用的查找函数和排序函数的实现。对于函数的高种常用的查找函数和排序函数的实现。对于函数的高级应用,本章还具体讲解了函数模板的定义及其实例级应用,本章还具体讲解了函数模板的定义及其实例化,并简要介绍了函数的重载。有关函数模板和函数化,并简要介绍了函数的重载。有关函数模板和函数重载的相关内容,在后续章节还将继续介绍。重载的相关内容,在后续

12、章节还将继续介绍。第12页,共17页,编辑于2022年,星期五习题习题【题目题目121】编写一个编写一个C+函数,利用数组名作为函数参数函数,利用数组名作为函数参数对数组中的所有元素进行升序排列,并输出排序前和排序对数组中的所有元素进行升序排列,并输出排序前和排序后的数组元素。后的数组元素。【分析分析】该试题主要考查数组作为函数参数的传递过程。读该试题主要考查数组作为函数参数的传递过程。读者需要注意,在用数组名作为函数参数进行传递时,函数者需要注意,在用数组名作为函数参数进行传递时,函数传递的不是数组中数组元素的真实值而是数组在内存中的传递的不是数组中数组元素的真实值而是数组在内存中的实际地址

13、。因此,在进行排序时可考虑冒泡排序算法,即实际地址。因此,在进行排序时可考虑冒泡排序算法,即两两比较数组元素,将其中较大的元素依次排到数组的后两两比较数组元素,将其中较大的元素依次排到数组的后面,通过数组元素的交换来实现。面,通过数组元素的交换来实现。第13页,共17页,编辑于2022年,星期五【题目题目122】有有n个数,已按由小到大顺序排列好,要求输入个数,已按由小到大顺序排列好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序,同一个数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。时输出新的数列。【题目题目123】编写函数利用数组名作参数计算数组编写函数利用数组名作参

14、数计算数组arr34所有元素的和。所有元素的和。【题目题目124】使用函数重载的方法定义两个重名函数,分别使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和浮点型数的两点间距离。求出整型数的两点间距离和浮点型数的两点间距离。【题目题目125】利用重载编写求整数绝对值和求实数绝对值两利用重载编写求整数绝对值和求实数绝对值两个函数。个函数。第14页,共17页,编辑于2022年,星期五【题目题目126】编写一个函数,返回二维数组编写一个函数,返回二维数组amn中所有元中所有元素的平均值,假定采用变量素的平均值,假定采用变量v存放平均值。存放平均值。【题目题目127】编写一个递归函数计算

15、出数组编写一个递归函数计算出数组a中中n个元素的平个元素的平方和并返回结果。方和并返回结果。【题目题目128】编写一个递归函数编写一个递归函数void p(int n);,当,当n的值为的值为5时显示出如下图形。时显示出如下图形。【题目题目129】定义一个函数模板,使其能够完成两个整型、定义一个函数模板,使其能够完成两个整型、字符型和浮点型变量的值的交换,并在主函数中将其实例字符型和浮点型变量的值的交换,并在主函数中将其实例化。化。第15页,共17页,编辑于2022年,星期五【题目题目130】编写一个函数,从一个二维整型数组中查找具编写一个函数,从一个二维整型数组中查找具有最大值的元素,由引用

16、参数有最大值的元素,由引用参数row和和col带回该元素的行带回该元素的行号和列号。号和列号。【题目题目131】编写一个函数,对于二维字符数组编写一个函数,对于二维字符数组a中保存的中保存的M个字符串,分别统计并输出其长度小于个字符串,分别统计并输出其长度小于5、大于等于、大于等于5且小且小于于15、大于等于、大于等于15的字符串个数。的字符串个数。【题目题目132】编写一个递归函数,求出两个自然数编写一个递归函数,求出两个自然数m和和n的最的最小公倍数。小公倍数。第16页,共17页,编辑于2022年,星期五【题目题目133】编写一个函数,实现编写一个函数,实现strcat函数的功能,把函数的

17、功能,把s2所指字符串连接到所指字符串连接到s1所指字符串的后面,并返回所指字符串的后面,并返回s1指针。指针。【题目题目134】编写一个函数,实现编写一个函数,实现strcmp函数的功能,比较函数的功能,比较两个字符串两个字符串str1和和str2的大小,若的大小,若str1较大则返回较大则返回1,若,若str2较大则返回较大则返回-1,若两者相等则返回,若两者相等则返回0。【题目题目135】编写一个函数模板,从一维数组编写一个函数模板,从一维数组an中查找值中查找值为为key的元素,若查找成功则返回真否则返回假。的元素,若查找成功则返回真否则返回假。第17页,共17页,编辑于2022年,星期五

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁