实验4函数的应用 【实验目的】 1掌握函数声明、定义和调用的方法; 2了解函数调用的实参与形参的传递,以及参数默认值的设置。 3掌握重载函数的实现方法。 4理解递归和嵌套函数的概念、定义与调用 【实验内容】 1.分别输入整数半径和实数半径,使用函数重载计算圆的面积。 #include <iostream. h> #define pi3.14 int area(int); float area(float); void maino cout<<area="<<area(rl)<<end; t<< Input a float r= cout<<area="<<area(r2)<<endl; int area(int x) i return Pl*x*x: i return Plx*x 2.使用内联函数计算长方形的面积 #include <iostream.h> inline float s(float x, float y); yoid mainO i float a, b cout<<"Input two float a, b=; a, b<<end; at s(float x, float y)
实验 4 函数的应用 【实验目的】 1 掌握函数声明、定义和调用的方法; 2 了解函数调用的实参与形参的传递,以及参数默认值的设置。 3 掌握重载函数的实现方法。 4 理解递归和嵌套函数的概念、定义与调用。 【实验内容】 ⒈分别输入整数半径和实数半径,使用函数重载计算圆的面积。 #include <iostream.h> #define PI 3.14 int area(int); float area(float); void main() { int r1; cout<<"Input a integer r="; cin>>r1; cout<<"area="<<area(r1)<<endl; float r2; cout<<"Input a float r="; cin>>r2; cout<<"area="<<area(r2)<<endl; } int area(int x) { return PI*x*x; } float area(float x) { return PI*x*x; } ⒉使用内联函数计算长方形的面积。 #include <iostream.h> inline float s(float x,float y); void main() { float a,b; cout<<"Input two float a,b="; cin>>a>>b; cout<<"s="<<s(a,b)<<endl; } float s(float x,float y) { return x*y; }
3编写程序,求Cm=m(n-m) #include <iostream. h> long fact(int); void maino double c cout<<" please input"<<endl; II: cout<<n=: cout<<m= cin>>m; if (n<m)i cout<<" n must bigger than m. please reinput: <<endl; goto l1: c= fact(n) /( fact(m)*fact(n-m)) cout<<c=v<<c<<endl long fact(int k) {i((k==0)‖(k==1) eturn else return fact(k-1); 4编写程序用公式:r=16 arctan(1/5)-4 arctan(1/239)求π。 其中: arctan(x)=x-x33+x515+…+(-1)x2n+12n+1)+…直到 级数某项绝对值不大于10-15为止:π和x均为 double型 #includesiostream. h> void main( i double a, b; double arctan(double x); a=16.0° arctan(1/.0) b=40 arctan(12390); cout<<Pe<<a-b<<endl double arctan(double x) i int i; double r, e, f, sqr sqr-x X, 1:
⒊编写程序,求 !( )! ! m n m n C m n − = #include <iostream.h> long fact(int); void main() { int m,n; double c; cout<<"please input"<<endl; l1: cout<<"n="; cin>>n; cout<<"m="; cin>>m; if (n<m) { cout<<"n must bigger than m.please reinput:"<<endl; goto l1; } c= fact(n)/( fact(m)* fact(n-m)); cout<<"c="<<c<<endl; } long fact(int k) { if((k==0)||(k==1)) return 1; else return fact(k-1); } ⒋编写程序用公式:π=16arctan(1/5)-4 arctan(1/239)求π。 其中:arctan(x)=x/1-x 3 /3+ x5 /5+‥‥+(-1)nx 2n+1/(2n+1)+ ‥‥直到 级数某项绝对值不大于 10-15 为止;π和 x 均为 double 型。 #include<iostream.h> void main( ) { double a,b; double arctan(double x); a=16.0*arctan(1/5.0); b=4.0*arctan(1/239.0); cout<<"PI="<<a-b<<endl; } double arctan(double x) { int i; double r,e,f,sqr; sqr=x*x; r=0; e=x; i=1;
while(e/ile-15) r=(i%4==1)?r+f:rf; e-e sqr, 5.寻找并输出11999之间的数m,它满足m、m2和m3均为回文数。 注:回文:各位数字左右对称的整数。 例如:11满足上述条件 112=121,113=1331。 # include≤ iostream. h> void main() i bool symm (long n) lol for(m=ll;m<1000;m++) if (symm(m)&&symm(m*m)&&symm(m*m*m)) cout<<"m="<<m<< m"=<<mm<< m"ma <<mm"m<<endl bool symm(long n) f long i, m En while(i {m=m10+i%10 i=i/10; return( m=n )
while(e/i>1e-15) { f=e/i; r=(i%4==1)? r+f : r-f; e=e*sqr; i+=2; } return r; } ⒌寻找并输出 11~999 之间的数 m,它满足 m、m2 和 m3 均为回文数。 注:回文:各位数字左右对称的整数。 例如:11 满足上述条件 112=121,113=1331。 #include <iostream.h> void main( ) { bool symm(long n); long m; for(m=11;m<1000; m++) if (symm(m)&&symm(m*m)&&symm(m*m*m)) cout<<"m="<<m<<" m*m="<<m*m<<" m*m*m="<<m*m*m<<endl; } bool symm(long n) { long i, m; i=n; m=0; while(i) {m=m*10+i%10; i=i/10; } return ( m==n ); }