c语言第六章.ppt
《c语言第六章.ppt》由会员分享,可在线阅读,更多相关《c语言第六章.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、易学易学C+C+配套电子教案配套电子教案好用的工具好用的工具函数函数易学易学C+C+第六章第六章本章目标本章目标 理解函数的概念理解函数的概念 掌握函数的使用和定义方法掌握函数的使用和定义方法 理解参数和返回的概念理解参数和返回的概念 理解主函数的概念理解主函数的概念 理解函数存在的意义理解函数存在的意义 掌握函数的重载掌握函数的重载 掌握函数的默认参数掌握函数的默认参数 掌握引用掌握引用 了解函数的递归了解函数的递归*4/3/20234/3/20232220092009年年22月月77日更新日更新直尺和量角器如果有现成的工具,我们就不必去自己制造。工具是可以反复使用的。直尺和量角器可以在使用
2、中获得结果(长度和角度)。直尺和量角器必须在合适的条件下使用。(例如不能超过量程、直尺不能去测量角度)4/3/20234/3/20233320092009年年22月月77日更新日更新C+C+的函数的函数 函数(函数(FunctionFunction)与直尺和量角器类似,都是)与直尺和量角器类似,都是一种一种“工具工具”,只不过它用在程序设计中。,只不过它用在程序设计中。如果有现成的函数,我们就可以直接使用。如果有现成的函数,我们就可以直接使用。一个函数可以在合适的情况下反复使用。一个函数可以在合适的情况下反复使用。这里的函数与数学中的函数有相似之处,但不这里的函数与数学中的函数有相似之处,但不
3、完全相同。完全相同。4/3/20234/3/20234420092009年年22月月77日更新日更新函数与工具的比较函数与工具的比较属性工具函数名称工具名称(如直尺)工具名称(如直尺)函数名函数名使用方法使用效果使用环境获得方法4/3/20234/3/20235520092009年年22月月77日更新日更新函数的命名函数的命名 当函数是当函数是“现成现成”的时候,使用这个函数必然会的时候,使用这个函数必然会涉及到函数名。这就像使用变量时会用到变量名涉及到函数名。这就像使用变量时会用到变量名一样。一样。当我们自己当我们自己“创造创造”一个函数的时候,就需要对一个函数的时候,就需要对这个函数命名,
4、命名的规则与变量命名规则类似:这个函数命名,命名的规则与变量命名规则类似:1 1、不能使用、不能使用C+C+保留字保留字 2 2、不允许有字母、数字和下划线之外的字符、不允许有字母、数字和下划线之外的字符 3 3、首字母必须是字母或下划线、首字母必须是字母或下划线 4 4、大小写敏感、大小写敏感4/3/20234/3/20236620092009年年22月月77日更新日更新函数与工具的比较函数与工具的比较属性工具函数名称工具名称(如直尺)函数名使用方法工具说明书工具说明书函数原型函数原型使用效果使用环境获得方法4/3/20234/3/20237720092009年年22月月77日更新日更新函数
5、原型函数原型 函数原型(函数原型(Function PrototypeFunction Prototype)相当于函)相当于函数的使用说明书,它的格式为:数的使用说明书,它的格式为:intint func_a(intfunc_a(int a,inta,int b);b);返回值类型返回值类型 函数名函数名(参数参数1 1,参数参数2 2,参数参数n n););不知道这是什么?没关系。不知道这是什么?没关系。4/3/20234/3/20238820092009年年22月月77日更新日更新函数与工具的比较函数与工具的比较属性工具函数名称工具名称(如直尺)函数名使用方法工具说明书函数原型使用效果定量
6、或非定量结果定量或非定量结果返回值类型返回值类型使用环境获得方法4/3/20234/3/20239920092009年年22月月77日更新日更新返回值类型返回值类型 返回值类型相当于函数所产生效果的类型。返回值类型相当于函数所产生效果的类型。返回值类型在函数原型中出现。返回值类型在函数原型中出现。返回值类型返回值类型 函数名函数名(参数参数1,1,参数参数2,2,参数参数n);n);函数的返回值类型是某种数据类型,例如整函数的返回值类型是某种数据类型,例如整型、字符型、布尔型、空类型等等。型、字符型、布尔型、空类型等等。void类型4/3/20234/3/2023101020092009年年2
7、2月月77日更新日更新空类型空类型voidvoid 空类型也是一种数据类型。空类型也是一种数据类型。在函数的返回值类型中,表示该函数不会在函数的返回值类型中,表示该函数不会产生任何定量的结果。产生任何定量的结果。4/3/20234/3/2023111120092009年年22月月77日更新日更新函数与工具的比较函数与工具的比较属性工具函数名称工具名称(如直尺)函数名使用方法工具说明书函数原型使用效果定量或非定量结果返回值使用环境由说明书确定由说明书确定由函数原型中的参数确定由函数原型中的参数确定获得方法4/3/20234/3/2023121220092009年年22月月77日更新日更新函数的参
8、数函数的参数 参数通常是函数调用时的必要参数通常是函数调用时的必要“输入输入”,因为这些参数或多或少会影响函数的调用因为这些参数或多或少会影响函数的调用结果。参数的个数、类型、顺序都由函数结果。参数的个数、类型、顺序都由函数原型确定。原型确定。例如有一个函数原型:例如有一个函数原型:intint func_a(intfunc_a(int a,inta,int b);b);那么那么func_a(4,3)func_a(4,3)是正确的使用方法,而是正确的使用方法,而func_a(1)func_a(1)是错误的使用方法。是错误的使用方法。4/3/20234/3/2023131320092009年年2
9、2月月77日更新日更新形式参数和实际参数形式参数和实际参数 在函数原型中的参数仅仅起到在函数原型中的参数仅仅起到“占位占位”作作用,称为用,称为“形式参数形式参数”。形式参数类似于数学函数形式参数类似于数学函数g(x,yg(x,y)=x/4+y)=x/4+y中的中的x x和和y y,它们没有具体的数值。,它们没有具体的数值。在调用函数时,填入的参数有一个确定的在调用函数时,填入的参数有一个确定的值,这些参数称为值,这些参数称为“实际参数实际参数”。实际参数类似于实际参数类似于g(4,1)g(4,1)中的中的4 4和和1 1。4/3/20234/3/2023141420092009年年22月月7
10、7日更新日更新函数与工具的比较函数与工具的比较属性工具函数名称工具名称(如直尺)函数名使用方法工具说明书函数原型使用效果定量或非定量结果返回值使用环境由说明书确定由函数原型中的参数确定获得方法自制或从工具箱获得自制或从工具箱获得自定义或标准库函数自定义或标准库函数4/3/20234/3/2023151520092009年年22月月77日更新日更新标准库函数标准库函数 标准库(标准库(Standard LibraryStandard Library)函数通常)函数通常是系统已经编制好的函数,我们可以是系统已经编制好的函数,我们可以直接调用。直接调用。调用对应的标准库函数之前,必须要调用对应的标准
11、库函数之前,必须要包含对应的头文件,否则在大多数编包含对应的头文件,否则在大多数编译器下会无法调用。译器下会无法调用。4/3/20234/3/2023161620092009年年22月月77日更新日更新标准库函数的使用标准库函数的使用问题描述问题描述 已知在已知在cmath(math.hcmath(math.h)头文件中有以下函数:头文件中有以下函数:double double sin(doublesin(double a);a);/计算正弦值,计算正弦值,a a为弧度为弧度double double sqrt(dublesqrt(duble a);a);/计算平方根计算平方根double d
12、ouble pow(doublepow(double x,doublex,double y);y);/计算计算x x的的y y次方次方要求通过以上函数求出双精度浮点数要求通过以上函数求出双精度浮点数a a的正弦的正弦值、平方根和平方。(注意负数没有平方根,值、平方根和平方。(注意负数没有平方根,此处此处a a为角度。)为角度。)4/3/20234/3/2023171720092009年年22月月77日更新日更新标准库函数的使用标准库函数的使用运行结果运行结果4/3/20234/3/2023181820092009年年22月月77日更新日更新标准库函数的使用标准库函数的使用设计设计 输入:一个浮
13、点数输入:一个浮点数 输出:函数的结果输出:函数的结果 算法:分别调用各个算法:分别调用各个函数,注意当输入负函数,注意当输入负数时,没有平方根数时,没有平方根 存储:需要一个变量存储:需要一个变量存储输入的浮点数存储输入的浮点数4/3/20234/3/2023191920092009年年22月月77日更新日更新标准库函数的使用标准库函数的使用编码编码#include#include#include#include/预处理头文件,否则无法使用这些函数预处理头文件,否则无法使用这些函数预处理头文件,否则无法使用这些函数预处理头文件,否则无法使用这些函数using namespace std;us
14、ing namespace std;intint main()main()const double pi=3.1415926535827;const double pi=3.1415926535827;double a;double a;cincin a;a;coutcout“sin(asin(a)=”sin(a/360*2*pi)=”sin(a/360*2*pi)endlendl;/弧度和角度的转换弧度和角度的转换弧度和角度的转换弧度和角度的转换if(a0)if(a0)/判断是否为负数判断是否为负数判断是否为负数判断是否为负数coutcout 负数没有平方根!负数没有平方根!负数没有平方根!
15、负数没有平方根!endlendl;elseelsecoutcout sqrt(asqrt(a)=)=sqrt(asqrt(a)endlendl;coutcout pow(a,2)=pow(a,2)pow(a,2)=pow(a,2)endlendl;return 0;return 0;4/3/20234/3/2023202020092009年年22月月77日更新日更新输出较大数输出较大数问题描述问题描述 假设有以下自定义函数原型:假设有以下自定义函数原型:intint max(intmax(int a,inta,int b);b);其返回的结果是整数其返回的结果是整数a a和和b b中较大的一个
16、整中较大的一个整数值。现使用该函数来输出两个整数中较数值。现使用该函数来输出两个整数中较大的一个,这两个数从键盘输入。大的一个,这两个数从键盘输入。4/3/20234/3/2023212120092009年年22月月77日更新日更新输出较大数输出较大数运行结果运行结果4/3/20234/3/2023222220092009年年22月月77日更新日更新输出较大数输出较大数设计设计 输入:两个整数输入:两个整数 输出:两个整数中的较大者输出:两个整数中的较大者 算法:将这两个整数作为参数,调用算法:将这两个整数作为参数,调用maxmax函数。函数。存储:需要存储两个整数和运算结果,共三个存储:需要
17、存储两个整数和运算结果,共三个变量。变量。4/3/20234/3/2023232320092009年年22月月77日更新日更新输出较大数输出较大数编码编码#include#include using namespace std;using namespace std;intint main()main()intint r,s,tr,s,t;cincin r s;r s;t=t=max(r,smax(r,s););/调用调用调用调用maxmax函数函数函数函数coutcout 较大的数是较大的数是较大的数是较大的数是 t t endlendl;return 0;return 0;4/3/2023
18、4/3/2023242420092009年年22月月77日更新日更新函数的声明和定义函数的声明和定义 通常情况下,每个函数都有声明(通常情况下,每个函数都有声明(DeclarationDeclaration)和定义(和定义(DefinitionDefinition),它们是调用一个函数前必),它们是调用一个函数前必须的条件。须的条件。声明和定义并不是相同的概念。函数的声明是告声明和定义并不是相同的概念。函数的声明是告诉计算机存在这样一个可以使用的函数;而函数诉计算机存在这样一个可以使用的函数;而函数的定义则是描述了这个函数如何去运行。的定义则是描述了这个函数如何去运行。我们之前编写的程序,都是
19、在定义主函数,即主我们之前编写的程序,都是在定义主函数,即主函数是如何运行的。函数是如何运行的。4/3/20234/3/2023252520092009年年22月月77日更新日更新如何声明和定义如何声明和定义 在在C+C+中,函数原型就是函数的声明。它应该在调用之前中,函数原型就是函数的声明。它应该在调用之前出现。出现。返回值类型返回值类型 函数名函数名(参数参数11,参数参数22,参数参数nn););函数的定义方法与定义主函数的方法类似:函数的定义方法与定义主函数的方法类似:返回值类型返回值类型 函数名函数名(参数参数11,参数参数22,参数参数nn)语句语句;不能在一个函数体内定义另一个函
20、数。不能在一个函数体内定义另一个函数。也称为参数表大括号中的称为函数体4/3/20234/3/2023262620092009年年22月月77日更新日更新输出较大数输出较大数问题描述问题描述 给定以下函数原型:给定以下函数原型:intint max(intmax(int a,inta,int b);b);其返回的结果是整数其返回的结果是整数a a和和b b中较大的一个整中较大的一个整数值。请自行定义该函数,并使用该函数数值。请自行定义该函数,并使用该函数来输出两个整数中较大的一个,这两个数来输出两个整数中较大的一个,这两个数从键盘输入。从键盘输入。4/3/20234/3/20232727200
21、92009年年22月月77日更新日更新输出较大数输出较大数运行结果运行结果4/3/20234/3/2023282820092009年年22月月77日更新日更新输出较大数输出较大数设计设计 输入:两个整数输入:两个整数 输出:两个整数中的较大者输出:两个整数中的较大者 算法:将这两个整数作为参数,调用算法:将这两个整数作为参数,调用maxmax函数。函数。maxmax函数需要将判断结果反馈。函数需要将判断结果反馈。存储:需要存储两个整数和运算结果,共三个存储:需要存储两个整数和运算结果,共三个变量。变量。4/3/20234/3/2023292920092009年年22月月77日更新日更新输出较大
22、数输出较大数编码编码#include#include using namespace std;using namespace std;intint max(intmax(int a,inta,int b);b);/max/max函数声明函数声明函数声明函数声明intint main()main()/主函数定义主函数定义主函数定义主函数定义intint r,s,tr,s,t;cincin r s;r s;t=t=max(r,smax(r,s););/调用调用调用调用maxmax函数函数函数函数coutcout 较大的数是较大的数是较大的数是较大的数是 t t return(ab)?a:bb)?a
23、:b;4/3/20234/3/2023303020092009年年22月月77日更新日更新返回语句返回语句returnreturn 关于返回,有两层意思。其一是指将表达关于返回,有两层意思。其一是指将表达式的值作为函数的运行结果反馈给调用函式的值作为函数的运行结果反馈给调用函数的地方。其二是指结束该函数的运行,数的地方。其二是指结束该函数的运行,回到调用该函数的地方,继续执行后面的回到调用该函数的地方,继续执行后面的语句。语句。4/3/20234/3/2023313120092009年年22月月77日更新日更新returnreturn语句的用法语句的用法 语法格式为:语法格式为:return
24、return 符合返回值类型的表达式符合返回值类型的表达式;当函数的返回值类型为当函数的返回值类型为voidvoid时,可以这样:时,可以这样:return;return;如果函数的返回值类型不是如果函数的返回值类型不是voidvoid,则必须保,则必须保证无论如何函数都会返回一个值。证无论如何函数都会返回一个值。4/3/20234/3/2023323220092009年年22月月77日更新日更新主函数主函数mainmain 主函数是一个特殊的函数,程序的运行都主函数是一个特殊的函数,程序的运行都是从主函数开始的。是从主函数开始的。主函数在每个程序中只能有一个,并且必主函数在每个程序中只能有一
25、个,并且必须有一个。须有一个。主函数需要定义,但不需要声明。主函数需要定义,但不需要声明。主函数的返回值是反馈给操作系统的。主函数的返回值是反馈给操作系统的。4/3/20234/3/2023333320092009年年22月月77日更新日更新更完整的程序结构更完整的程序结构预处理头文件预处理头文件各函数声明各函数声明主函数主函数 语句语句;/注释注释 各函数定义各函数定义4/3/20234/3/2023343420092009年年22月月77日更新日更新函数存在的意义函数存在的意义 合理分配功能,增强了程序的可读性。合理分配功能,增强了程序的可读性。合理分解功能,降低了程序的复杂性。合理分解功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第六
限制150内