欢迎来到天天文库
浏览记录
ID:43459763
大小:723.50 KB
页数:61页
时间:2019-10-08
《函数与运算符的重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章函数与运算符的重载5.1三次方程求根程序的设计5.2函数的说明与使用5.3函数的嵌套与递归5.4函数与运算符的重载5.5函数与C++程序结构5.6程序实例15.1三次方程求根程序的设计--计算三次方程x3+px+q=0的一个实根的公式为xr=为了从系数p、q计算实根xr,把公式的计算分解为下面几步:1)令实数xr=A+B;2)令实数A,B分别为实数R,S的立方根:3)令R=-q/2+a,S=-q/2-a;(5.2)4)令a=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));实际的计算过程为:用(4)计算得到a;用(3)计算得
2、到R和S;求出R和S的立方根A和B;最后得到实根xr。25.1三次方程求根程序的设计计算立方根的迭代公式Floatcuberoot(floatx){//精确到小数点后6位floatroot,croot;constfloateps=1e-6;croot=x;do{root=croot;croot=(2*root+x/(root*root))/3;}while(fabs(croot-root)>eps);return(croot);}35.1三次方程求根程序的设计#include<iostream.h>//program5-1#include<math.h
3、>floatcuberoot(float);voidmain(void){floatp,q,xr;cout<<″Inputparametersp,q:″;cin>>p>>q;floata=sqrt((q/2)*(q/2)+(q/3)*(q/3)*(q/3));xr=cuberoot(-q/2+a)+cuberoot(-q/2-a);cout<<endl<<″Therealrootoftheequationis″<<xr;}floatcuberoot(floatx){……}45.1三次方程求根程序的设计课本p129显示了不使用函数的程序。其中croot的
4、立方根的运算进行了两次,所以该计算程序要重复两次,当程序较长,或计算次数更多时,采用“子程序”的方案可以大大缩短程序的长度。特别是当程序比较复杂时,可以使得程序显得清晰,在program5_1中,main()中不涉及计算立方根的细节,显得简洁,而在cuberoot()中只解决一个浮点数的立方根的计算,也很清楚。另外,还可以把立方根的计算与C++语言中的运算符和标准函数对应起来,当在程序中对于cuberoot(y)给出了定义之后,就可以在主函数或其它用户定义的函数中,像运算符或标准函数那样使用了,如cuberoot(x)的使用与a+b,sin(x)的使用
5、没有什么区别。55.2函数的说明与使用C++程序允许两种函数说明语句的形式,我们把它们分别称为函数原型(或函数声明)和函数定义。1.函数原型函数原型(亦称函数声明)用来指出函数的名称,类型和参数,其格式为:[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉);intadd(inta,intb);inlinevoidswap(float&s,float&t);voidprint(char*);65.2.1函数的说明属性说明:可缺省,一般可以是下面的关键字之一:inline,static,virtual,friend等。inline表示该函数为内联函数;s
6、tatic表示该函数为静态函数;virtual表示该函数为虚函数;friend表示该函数为某类(class)的友元函数。类型:指函数的返回类型。函数名:一个标识符。参数表:它可能为空,void或〈类型〉〈参数名〉,〈类型〉〈参数名〉…的形式。main(),print(void),cuberoot(floatx),add(inta,intb)75.2.1函数的说明2.函数定义函数定义与函数原型的主要区别是它还包括函数体,其格式为:[〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉)〈函数体〉属性说明,返回类型,函数名与函数原型一致,参数表中不可省略参数名。函
7、数体:由{和}括起来的复合语句即程序块。program5_1的最后12行就是一个函数定义。8函数的分类方法1从使用角度分类2从函数形式分类9(1)从使用角度分类从使用角度划分,可将函数分为:系统预定义的标准库函数(如,sin,abs等),以及由用户自定义的函数。程序中可直接使用(调用)系统预定义的标准库函数,但要求在调用前使用编译预处理指令include将对应的头文件包含进来。由用户自定义的函数与系统预定义的标准库函数的不同点在于,自定义函数的函数名、参数个数、函数返回值类型以及函数所实现的功能等都完全由用户程序来规定(指定)。10(2)从函数形式分类
8、从函数形式划分,可分为无参函数与有参函数两类。对无参函数来说,调用它们时不需要提供实际参数;而
此文档下载收益归作者所有