正文

C++ 入门 第四章 4.9 函数的嵌套调用[2]2008-09-08 17:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/38155.html

分享到:

  (2) 用函数xpoint (x1,x2)来求(x1,f(x1))和(x2,f(x2))的连线与x轴的交点x的坐标。 (3) 用函数root(x1,x2)来求(x1,x2)区间的那个实根。显然,执行root函数的过程中要用到xpoint函数,而执行xpoint函数的过程中要用到f函数。 根据以上算法,可以编写出下面的程序: #include <iostream> #include <iomanip> #include <cmath> using namespace std; double f(double);                 //函数声明 double xpoint(double, double);     //函数声明 double root(double, double);       //函数声明 int main( ) { double x1,x2,f1,f2,x;   do   {cout<<″input x1,x2:″;    cin>>x1>>x2;    f1=f(x1);    f2=f(x2);   } while(f1*f2>=0);  x=root(x1,x2);  cout<<setiosflags(ios∷fixed)<<setprecision(7);  //指定输出7位小数  cout<<″A root of equation is ″<<x<<endl;  return 0; } double f(double x)              //定义f函数,以实现f(x) {double y;  y=x*x*x-5*x*x+16*x-80;  return y; }   double xpoint(double x1, double x2)       //定义xpoint函数,求出弦与x轴交点 {double y;  y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));    //在xpoint函数中调用f函数  return y; } double root(double x1, double  x2)       //定义root函数,求近似根 {double x,y,y1;  y1=f(x1);  do   {x=xpoint(x1,x2);             //在root函数中调用xpoint函数    y=f(x);                      //在root函数中调用f函数    if (y*y1>0)     {y1=y;      x1=x;     }    else x2=x;   }while(fabs(y)>=0.00001);  return x; }   运行情况如下: input x1,x2:2.5  6.7↙ A root of equation is 5.0000000 对程序的说明: (1) 在定义函数时,函数名为f,xpoint和root的3个函数是互相独立的,并不互相从属。这3个函数均定为双精度型。 (2) 3个函数的定义均出现在main函数之后,因此在main函数的前面对这3个函数作声明。 习惯上把本程序中用到的所有函数集中放在最前面声明。 (3) 程序从main函数开始执行。函数的嵌套调用见图4.8。

阅读(2219) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册