- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 函数与运算符的重载 5.1 三次方程求根程序的设计 5.2 函数的说明与使用 5.3 函数的嵌套与递归 5.4 函数与运算符的重载 5.5 函数与C++程序结构 5.6 程序实例 5.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)计算得到 R 和S ;求出 R 和 S 的立方根 A 和 B ;最后得到实根xr。 5.1 三次方程求根程序的设计 计算立方根的迭代公式 Float cuberoot(float x){//精确到小数点后6位 float root , croot; const float eps=1e-6; croot=x;do{ root=croot; croot=(2*root+x/(root*root))/3; } while(fabs(croot-root)>eps); return(croot); } 5.1 三次方程求根程序的设计 # include<iostream.h> //program5-1 # include<math.h> float cuberoot(float); void main(void) { float p, q, xr; cout<<″Input parameters p,q: ″; cin>>p>>q; float a=sqrt ((q/2) *(q/2) + (q/3) * (q/3) * (q/3)) ; xr=cuberoot(-q/2+a)+cuberoot(-q/2-a); cout<<endl<<″The real root of the equation is″<<xr; } float cuberoot(float x){ …… } 5.1 三次方程求根程序的设计 课本p129显示了不使用函数的程序。其中croot 的立方根的运算进行了两次,所以该计算程序要重复两次, 当程序较长,或计算次数更多时,采用“子程序”的方案可以大大缩短程序的长度。 特别是当程序比较复杂时,可以使得程序显得清晰,在program5_1 中,main()中不涉及计算立方根的细节,显得简洁,而在cuberoot()中只解决一个浮点数的立方根的计算,也很清楚。 另外,还可以把立方根的计算与C++语言中的运算符和标准函数对应起来,当在程序中对于cuberoot(y)给出了定义之后,就可以在主函数或其它用户定义的函数中,像运算符或标准函数那样使用了,如cuberoot(x)的使用与a+b, sin(x)的使用没有什么区别。 5.2 函数的说明与使用-- 参看书p130的5.2节 C++程序允许两种函数说明语句的形式,我们把它们分别称为函数原型(或函数声明)和函数定义。 1.函数原型 函数原型(亦称函数声明)用来指出函数的名称,类型和参数,其格式为: [〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉); int add (int a, int b); inline void swap (float s, float t); void print (char *) ; 5.2.1 函数的说明 属性说明:可缺省,一般可以是下面的关键字之一:inline,static,virtual, friend 等。 inline 表示该函数为内联函数; static 表示该函数为静态函数; virtual 表示该函数为虚函数; friend 表示该函数为某类(class)的友元函数。 类型:指函数的返回类型。 函数名:一个标识符。 参数表:它可能为空,void 或〈类型〉〈参数名〉,〈类型〉〈参数名〉… 的形式。 main() ,print(void) , cuberoot(float x) , add(int a,int b) 5.2.1 函数的说明 2.函数定义 函数定义与函数原型的主要区别是它还包括函数体,其格式为: [〈属性说明〉]〈类型〉〈函数名〉(〈参数表〉)〈函数体〉 属性说明,返回类型,
您可能关注的文档
- 南京师范大学教科院视觉文化与媒介素养课件 书法――华夏精神的本质直观.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 陶瓷――水、火、土交融的产物.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 陶俑――化腐朽为神奇的造就.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 透过陶瓷看历史.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 我们用眼睛寻找宝藏――读图时代“看”行为的变迁与意义.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 信息时代的知识表征.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 影视――光影中的时空之舞.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 知识可视化工具――思维地图.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 中国古建筑――可触可见的历史.ppt
- 南京师范大学教科院视觉文化与媒介素养课件 中国民间剪纸――刀舞下的平面影像.ppt
文档评论(0)