C++面向对象第四章.ppt

C++面向对象程序设计 第四章 过程抽象和返回一个值的函数 葛勇 使用预定义函数 算法 自顶向下设计 逐步求解 分而治之 使用预定义函数 使用一个函数,要知道该函数有几个参数,每个参数的涵义及类型,及该函数返回值的意义及类型,对于预定义函数,还要知道该函数属于哪个头该文件,如 sqrt(x)用于求数x的平方根,可如下使用: double root=sqrt(5.0); 或 double x=53; double root=sqrt(x) 而且sqrt(double)是属于头文件cmath,因此使用sqrt(double)之前应该在预编译处理部分加上#includecmath 一个完整的程序: #includeiostream #incudecmath using namespace std; int main() { coutsqrt(5.0)endl; double x=53; double root=sqrt(x); coutrootendl; } 一元二次方程求根 //一元二次方程求解 #includeiostream #includecmath using namespace std; int main() { double a,b,c,root1,root2; const double eps=1e-8; char ans; do 一元二次方程求根 { cout请依次输入一元二次方程ax^2+bx+c=0的系数a,b,c,\n且a不等于0:\n; cinabc; if(fabs(a)eps) { cout二次项系数不能为零!请重新输入。\n; ans=y; continue; } 一元二次方程求根 double delta=b*b-4*a*c; if(delta0) { cout你输入的一元二次方程有两个 不同的实根,分别是:\n; root1=(-b+sqrt(delta))/(2*a); root2=(-b-sqrt(delta))/(2*a); coutx1=root1 \tx2=root2endl; } else if(fabs(delta)eps) 一元二次方程求根 { cout你输入的一元二次方程有两个实根,是:; cout-b/(2*a)endl; } else { cout你输入的一元二次方程有一对共轭复根,分别是:\n; double real1=-b/(2*a),img1=sqrt(-delta)/(2*a); double real2=real1,img2=-sqrt(-delta)/(2*a); coutx1=real1+img1i \tx2=real2img2iendl; } 一元二次方程求根 cout还要继续吗?继续请输入Y, 输入其它退出。; cinans; }while(ans==y or ans==Y); } 再如pow(x,y)用于求 ,其原型为 double pow(double,double),即两个参数都是double类型,返回值也是double类型,它也是在头文件cmath中定义。而 函数int abs(int)用求int类型的绝对值,在头文件cstdlib,(c standard library的简写) 类型转换 int a=3; double quotient=double(a)/2; double(a)将变量a的值转换为double类型,因此quotient的值为1.5 double dbl=3.3;v2=5.7 int(dbl)的值为3,int(v2)的值为5 练习 P.127(7版P.137) 2、3 2. sqrt(x+y) pow(x,y+7) sqrt(area+fudge) sqrt((time+tide)/nobody) (-b+sqrt(b*b-4*a*c))/(2*a) fabs(x-y) 3. #includeiostream #includecmath using namespace std; int main() { const double PI=3.14159; coutsqrt(PI)endl; } # includeiostream using namespace std; int main() { #includecmath const double PI=3.14159; coutsqrt(PI)endl; } 自定义函数 #includeiostream using namespace std; int max(int x,int y) { if

文档评论(0)

1亿VIP精品文档

相关文档