C++第4章 函数.ppt
《C++第4章 函数.ppt》由会员分享,可在线阅读,更多相关《C++第4章 函数.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 函数12/29/2022练习n编写一个求阶乘的函数,利用该函数完成第四章课后习题第8题。n编写一个判断素数的函数(是素数返回1,否则返回0),利用该函数完成第四章课后习题第10题。引例利用海伦公式计算任意三角形的面积#include#includevoid main()float s,a,b,c,p;coutabc;p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);cout三角形的面积是:sy?x:y;return(z);函数返回值类型函数返回值类型,若为若为int可省略可省略形式参数,必须分别列形式参数,必须分别列出每个参数的类型出每个参数的类型结束函数的
2、执行,结束函数的执行,返回到调用处返回到调用处函数的返回值,必函数的返回值,必须与函数类型一致须与函数类型一致 形式参数形式参数是调用该是调用该函数时需要函数处理的函数时需要函数处理的数据。数据。返回值返回值是函数调用是函数调用完后回应给调用者的结完后回应给调用者的结果。果。函数名函数名函数的定义无参函数无参函数void prn(void)cout“the max is”;函数类型,无返回函数类型,无返回值时值时void不可省略不可省略形式参数,无参形式参数,无参数时可省略数时可省略void函数名函数名return;函数类型为函数类型为void,所,所有无有无return语句语句 函数调用函数
3、调用 函数的功能是通过在程序中对其调用来实现的。调用一个函数,就是把控制权转去执行该函数的函数体,函数体执行完之后,再将控制权转到调用函数处。无参函数的调用格式一般为:函数名()有参函数的调用格式一般为:函数名()中的参数称为实际参数或实参实参。函数的调用函数的调用(先定义,后调用)#include /函数定义函数定义void main(void)int a,b,c;cinab;c=max(a,b);prn();coutcendl;执行过程:执行过程:Main函数函数调用函数调用函数max调用函数调用函数prnmax函数函数函数体函数体prn函数函数函数体函数体函数调用的使用方式如下:(1)对
4、于有返回值的函数,调用出现在表达式中。(2)对于没有返回值的函数,函数调用只能通过函数调用语句实现。函数调用方式函数调用方式:赋值赋值 如:c=max(a,b);表达式中表达式中 c=1+max(x,y);coutab;c=max(a,b);/函数表达式函数表达式prn();/函数语句函数语句coutcendl;5x3y5a3b实际参数实际参数,必须与形式参数个数相等,必须与形式参数个数相等,类型一致,按顺序对应!多于一个时以类型一致,按顺序对应!多于一个时以逗号分隔逗号分隔,实参可以为表达式实参可以为表达式传值调用:实参传给形参传值调用:实参传给形参(单向)(单向)。形参改变不会。形参改变不
5、会影响实参影响实参练习练习定义计算圆面积的函数,利用函数调用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积函数名函数名函数类型函数类型(形参表)(形参表)函数体函数体return 语句语句 练习练习定义计算圆面积的函数,利用函数调用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积area函数类型函数类型(形参表)(形参表)函数体函数体return 语句语句 练习练习定义计算圆面积的函数,利用函数调用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积area函数类型函数类型(float r)函数体函数体return 语句语句 练习练习定义计算圆面积的函数,利用函数调
6、用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积areafloat(float r)函数体函数体return 语句语句 练习练习定义计算圆面积的函数,利用函数调用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积areafloat(float r)float a;a=3.14159*r*r;return a;练习练习定义计算圆面积的函数,利用函数调用计算定义计算圆面积的函数,利用函数调用计算圆环面积圆环面积float area(float r)float a;a=3.14159*r*r;return a;void main()float r,R,s;cout“input r
7、 and R:”rR;s=area(R)-area(r);cout“圆环面积是:圆环面积是:”sendl;调用函数格式,调用函数格式,函数名(实参表)函数名(实参表)有返回值,在表达式中调用有返回值,在表达式中调用无返回值,单独成语句调用无返回值,单独成语句调用调用时,注意参数传递!调用时,注意参数传递!(值传递)(值传递)实参将值副本传给实参将值副本传给形参,形参改变不形参,形参改变不影响实参。影响实参。例例:void main()int a=3,b=4;swap(a,b);cout“a=”a“,b=”b;void swap(int x,int y)int temp;temp=x;x=y;y
8、=temp;cout“x=”x“,y=”y;abyx传传值值34?34执行函数43输出结果输出结果?函数的原型说明n函数说明函数说明q定义性说明定义性说明:函数:函数的定义部分的定义部分 q原型说明原型说明:引用性:引用性说明,针对调用在说明,针对调用在前而函数定义在后前而函数定义在后的情况的情况void swap(int x,int y);void main()int a=3,b=4;swap(a,b);cout“a=”a“,b=”b;void swap(int x,int y)int temp;temp=x;x=y;y=temp;cout“x=”x“,y=”y;保证编译器遇到函数调用语句保
9、证编译器遇到函数调用语句前先看到关于函数的说明!前先看到关于函数的说明!void swap(int,int);函数的设计n目的:为了方便多次使用相同的代码段(功能)目的:为了方便多次使用相同的代码段(功能)而设计的。而设计的。q确定函数的功能(单一功能)确定函数的功能(单一功能)n可根据功能对函数命名可根据功能对函数命名q确定函数参数确定函数参数n要实现函数功能必须预知的条件(入口)要实现函数功能必须预知的条件(入口)q确定返回值确定返回值n函数调用后应该得到的结果(出口)函数调用后应该得到的结果(出口)n有结果,定义返回值类型(单个结果)有结果,定义返回值类型(单个结果)n做输出,无返回值类
10、型,做输出,无返回值类型,void(不可省)(不可省)练习n编写一个判断素数的函数,如果是素数,返回1;如果不是素数,返回0。n求解20以内的素数和n求100以内的素数倒数和n验证哥德巴赫猜想:任意一个大于6的偶数都可以表示成两个素数之和。函数的嵌套和递归调用 VC+不允许在一个函数体内再定义另一不允许在一个函数体内再定义另一个函数,任一函数的定义均是独立的,函数之个函数,任一函数的定义均是独立的,函数之间是平等的和平行的,即间是平等的和平行的,即不能嵌套定义函数不能嵌套定义函数。但是但是可以嵌套调用函数可以嵌套调用函数,即在一个函数中,即在一个函数中又调用另一个函数!又调用另一个函数!mai
11、n函数函数调用调用a函数函数a函数函数调用调用b函数函数b函数函数a函数结束函数结束b函数结束函数结束main结束结束20递归调用 n递归调用递归调用q直接递归直接递归:在函数:在函数A的定义中出现调用的定义中出现调用A的情况的情况q间接递归间接递归:在函数:在函数A的定义中调用的定义中调用B函数,函数,而在而在B函数的定义中函数的定义中调用调用A函数函数#includelong int f(int n)if(n=0|n=1)return 1;return n*f(n-1);void main()cout1)课堂练习课堂练习 void f(int b,int t)int m;if(bt)m=(
12、b+t)/2;coutm;f(b,m-1);f(m+1,t);void main()f(1,6);23内联函数n内联函数内联函数q把函数体的代码直接插入到调用处,将调用函数的把函数体的代码直接插入到调用处,将调用函数的方式改为顺序执行直接插入的程序代码,这样可减方式改为顺序执行直接插入的程序代码,这样可减少程序的执行时间少程序的执行时间n实质:实质:以空间换时间以空间换时间n要求要求q函数定义前加关键字函数定义前加关键字inlineq函数体内含函数体内含循环,循环,switch和复杂的和复杂的if嵌套语句嵌套语句不要不要使用使用参数特殊的函数n具有缺省参数值的函具有缺省参数值的函数数 在调用函
13、数时,若在调用函数时,若明确给出了实参的值,明确给出了实参的值,则使用相应实参的值;则使用相应实参的值;若没有给出相应的实若没有给出相应的实参,则使用缺省的值。参,则使用缺省的值。int sum(int n=20)int s=0,i;for(i=1;im;sum(m);sum();25具有缺省参数值的函数n要求要求q缺省参数的说明必须出现在函数调用之前:缺省参数的说明必须出现在函数调用之前:n函数的定义放在最前面;函数的定义放在最前面;n先给出原型说明,在其中依次列出参数的缺省先给出原型说明,在其中依次列出参数的缺省值,值,不能重复指定不能重复指定;例如:例如:int sum(int n=20
14、););或者或者 int sum(int=20);q参数的缺省值可以是表达式,但表达式用到的参数的缺省值可以是表达式,但表达式用到的量必须有确定的值;量必须有确定的值;q具有缺省值的参数可有多个,必须位于参数表具有缺省值的参数可有多个,必须位于参数表的最右边。的最右边。例:例:float V(float a,float b=10,float c=20)26函数重载n指不同功能的函数可以具有相同的函数名。指不同功能的函数可以具有相同的函数名。#include int sum(int x,int y)return(x+y);float sum(float x,float y)return(x+y)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+第4章 函数 C+
限制150内