C+程序设计华中科技大学课件第三章.ppt
《C+程序设计华中科技大学课件第三章.ppt》由会员分享,可在线阅读,更多相关《C+程序设计华中科技大学课件第三章.ppt(61页珍藏版)》请在三一办公上搜索。
1、C+程序设计 第三章,授课教师:李战春,2,本章内容,3,引例,编程计算输出33+4.63+433,double p=1,x=3;int n=3;while(n-)p*=x;coutpendl;,33,?4.63,?xn,4,调用power(3.0,3),函数power(3.0,3),return 27.0,主程序后续语句,double power(double x,int n)/求x的n次幂double p=1;while(n-)p*=x;return p;int main()int n=3;double x1=3,x2=4.6,x3=43;double s;s=power(x1,n)+po
2、wer(x2,n)+power(x3,n);cout“s=s endl;return 0;,定义,5,数据类型 函数名(形式参数表),语句序列,定义函数返回值的数据类型。,函数返回值由 return 语句给出,3.1.2 函数的定义,函数运行时需要的数据,由主调函数提供。,函数体可以为空,称为空函数。,“做什么”,“拿什么来做”,“结果是什么”,“怎么做”,6,3.1.2 函数的定义,/返回两个整数中的较大值 int Max(int a,int b)int t;if(ab)t=a;else t=b;return t;,函数头,函数数据类型=返回值数据类型,7,3.1.2 函数的定义,无参函数,
3、/打印一个表头void TableHead()cout*endl;cout*example*endl;cout*endl;,函数头,函数数据类型=返回值数据类型,int input()/输入满足要求的数据int n;coutn;while(n=5);return n;,8,return 语句,return语句的作用:返回函数值 不再执行后续语句,程序控制返回调用点 一个函数体内可以有多个return 语句 表达式返回值的类型与函数类型不相同时,自动强制转换成函数的类型,return语句的格式:return 表达式;,【例3.3】设计函数,根据三角形的三边长求面积。如果不能构成三角形,给出提示信
4、息。分析:函数为计算三角形面积,一般三角形返回面积值,若不能构成三角形则返回-1。设计一个主函数完成函数测试。根据返回值情况输出相应结果。,9,【例3.3】程序:,float TriangleArea(float a,float b,float c)if(a+babc;area=TriangleArea(a,b,c);if(area=-1)cout(a,b,c)不能构成三角形!endl;elsecout三角形(a,b,c)面积为:areaendl;return 0;,return 语句,10,讨论:-函数可以有返回值,也可以没有返回值。对于没有返回值的函数,功能只是完成一定操作,应将返回值类型
5、定义为void,函数体内可以没有return语句,当需要在程序指定位置退出时,可以在该处放置一个:return;,return 语句,11,数据类型 函数名(形式参数表),语句序列,定义函数返回值的数据类型。,函数返回值由 return 语句给出,3.1.2 函数的定义,函数运行时需要的数据,由主调函数提供。,“做什么”,“拿什么来做”,“结果是什么”,“怎么做”,12,3.1.3 函数的调用,函数调用所谓函数调用,就是使程序转去执行函数体。,无参函数的调用格式:函数名()有参函数的调用格式:函数名(实际参数表)实际参数简称实参,用来将实际参数的值传递给形参,因此可以是常量、具有值的变量或表达
6、式。,在C+中,除了主函数外,其他任何函数都不能单独作为程序运行。任何函数功能的实现都是通过被主函数直接或间接调用进行的。,13,【例3.1】输入两个实数,输出其中较大的数。其中求两个实数中的较大数用函数完成。,程序如下:#include using namespace std;float max(float a,float b)return(a=b?a:b);int main()float a,b;coutab;coutab 中较大数为max(a,b)endl;return 0;,main()函数,调用max(2.5,4.7),函数max(2.5,4.7),return 4.7,主程序后续语
7、句,14,编写函数把华氏温度转化为摄氏温度,公式为:C=(F-32)5/9;在主函数中计算输出30、35、40、45、50、55、60华氏温度对应的摄氏温度对照表。某大桥按照车辆的类型收取过桥费用,自行车免费,摩托车2元,小汽车5元,大客车8元,大货车10元。请编写函数按照车辆的类型计算相应的过桥费用,在主函数中输入车辆的类型然后计算输出费用。,15,3.2 函数的参数传递、返回值及函数声明,函数的参数传递及传值调用 函数返回值 函数声明,16,【例3.2】实参和形参对应关系的示例。,调用power(4.6,3),函数power(4.6,3),return 97.336,主程序后续语句,flo
8、at power(float x,int n)/求x的n次幂float p=1;while(n-)p*=x;return p;int main()int n=3;float x=4.6;char c=a;coutpower(x,n)=power(x,n)endl;coutpower(c,n)=power(c,n)endl;coutpower(n,x)=power(n,x)endl;return 0;,17,【例3.2】实参和形参对应关系的示例。,调用power(a,3),函数power(97,3),return 912673,主程序后续语句,float power(float x,int n)
9、/求x的n次幂float p=1;while(n-)p*=x;return p;int main()int n=3;float x=4.6;char c=a;coutpower(x,n)=power(x,n)endl;coutpower(c,n)=power(c,n)endl;coutpower(n,x)=power(n,x)endl;return 0;,18,调用power(3,4.6),函数power(3,4),return 81,主程序后续语句,float power(float x,int n)/求x的n次幂float p=1;while(n-)p*=x;return p;int ma
10、in()int n=3;float x=4.6;char c=a;coutpower(x,n)=power(x,n)endl;coutpower(c,n)=power(c,n)endl;coutpower(n,x)=power(n,x)endl;return 0;,【例3.2】实参和形参对应关系的示例。,19,函数声明,语法上对程序文件中函数的排列次序要求满足先定义后使用。对于函数,只要在调用之前作函数声明(Function Declaration),则函数定义放在任何位置程序都能正确编译运行。,函数声明的引入:,函数声明的格式:,函数声明是一条以分号结束的语句:数据类型 函数名(形式参数表)
11、;,20,例如【例3.3】中求三角形面积的函数声明为:float TriangleArea(float a,float b,float c);或float TriangleArea(float,float,float);但下面的函数原型是错误的:int TriangleArea(float,float,float);/错误,返回值类型不同float TriangleArea(int,int,int);/错误,参数类型不同float TriangleArea(float,float);/错误,参数个数不同,float TriangleArea(float a,float b,float c)if
12、(a+b=c)|(a+c=b)|(b+c=a)return-1;float s;s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c);,21,函数声明,【例3.4】输出所有满足下列条件的正整数m:10m1000且m、m2、m3均为回文数。,分析:回文指左右对称的序列。如121、353等就是回文数。判断整数是否回文数用函数实现,其思想是将该数各位拆开后反向组成新的整数,如果该整数与原数相等则为回文数。,m m*m m*m*m11 121 1331101 10201 1030301111 12321 1367631,运行结果:,22,bool palindrome
13、(int);/函数声明int main()int m;coutsetw(10)msetw(20)m*m“setw(20)m*m*mendl;for(m=11;m1000;m+)if(palindrome(m),【例3.4】输出回文数,23,bool palindrome(int n)/判断回文数int digit10;int m=n,i=0,j;do digiti=n%10;n/=10;i+;while(n0);for(j=0;ji;j+)n=n*10+digitj;return(n=m);,【例3.4】输出回文数,24,3.3 全局变量和局部变量,全局变量 局部变量,25,3.3.2 全局变
14、量,在所有函数之外定义的变量称为全局变量。,全局变量存放在全局数据区,因编译器自动将该区清为全0,如果用户在定义时不显式给出初始化值,则等效初始化为全0。,全局变量可定义在程序开头,也可定义在中间位置,该全局变量在定义处之后的任何位置都是可以访问的,称为可见的。,全局变量引入:,26,打印200,调用func(),函数func(),200*2=400,打印400,n=100,n=100*2=200,【例3.5】多个函数使用全局变量的例子。int n=100;void func()n*=2;int main()n*=2;coutnendl;func();coutnendl;return 0;,2
15、7,3.3.3 局部变量,定义在函数内或块内的变量称为局部变量。,程序中使用的绝大多数变量都是局部变量。,局部变量在程序运行到它所在的块时建立在栈中,该块执行完毕局部变量占有的空间即被释放。故亦称为自动变量。,局部变量在定义时可加修饰词auto,但通常省略。局部变量在定义时若未初始化,其值为随机数。,局部变量引入:,28,打印main()中的t=3.5,调用fun(),函数fun(),打印fun()中的t=5,打印main()中的t=3.5,t=5,void fun()auto int t=5;/fun()中的局部变量,auto可省略coutfun()中的t=tendl;int main()f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 华中科技大学 课件 第三
链接地址:https://www.31ppt.com/p-6154080.html