《高级语言C++程序设计(第一版)-第五章.》.pdf
文本预览下载声明
122 第五章 函数、函数与运算符的重载
第五章 函数,函数与运算符的重载
函数概念是C++语言中最重要的概念之一,函数设计是程序设计的主要
部分或实质部分。函数在C++程序设计中的意义体现在四个方面。
(1)从历史上说,函数的思想来源于子程序,(如BASIC 语言中的子程序),
把程序中反复出现的相同或相近的程序改写成子程序,可以大大缩短程序的长
度。函数实际上是参数化的子程序。
(2 )从结构化程序设计(SP )的观点来看,函数绝不仅仅是为了缩短程序
长度,更重要的是通过函数设计,可以把整个程序要完成的整体的复杂的计算
任务,分解为一个个较小的,相对简单的子任务。这种模块化的程序易设计,
易阅读,易调试,易维护,较少出错。
(3 )从运算的角度说,函数就是C++语言提供的由用户定义的运算。运算
符是系统提供的运算,而函数是由用户自己定义的运算。
(4 )作为面向对象程序设计(OOP )语言的C++ ,以类为核心,类由数据
和方法组成,方法就是对数据的运算和处理,亦即类的函数成员。故函数设计
同样是OOP 的重要组成部分。
在 5.1 节中我们用实例来说明前三点,而对于函数作为类的成员,将在后
面的章节中说明。
5.1三次方程求根程序的设计
按照Cardan 公式,计算三次方程x 3 +px+q=0 的一个实根的公式为:
q q 2 p 3 q q 2 p 3
3 3
xr= ( ) ( ) ( ) ( )
2 2 3 2 2 3
在计算实根xr 的程序中,把计算一个浮点数的立方根的程序作为一个用户
定义的函数,而在主程序中两次调用这个函数。
5.1 三次方程求根程序的设计 123
3
在计算 y 过程中,使用迭代公式:
2 y
r r
n1 n 2
3 3r
n
程序如下:
//program5_1.cpp
# include <iostream.h >
# 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 +p /3*p /3*p /3 );
xr =cuberoot (-q /2 +a )+cuberoot (-q /2 -a );
cout <<endl <<″The real root of the equation is ″<<xr ;
}
float cuberoot (float x )
{
float root , croot ;
const float eps =1e-6 ;
croot =x ;
do {
root =croot ;
croot =(2*root +x/ (root*root ))/
显示全部