实验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;
}
⒊编写程序,求
#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-x3/3+ x5/5+‥‥+(-1)nx2n+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/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 );
}