1.[程序] 下列程序用克林斯提纳公式计算π 的近似值并输出。 3 5 7 9 (公式为: 32arctan 1 -4arctan 1 -16arctan 1 ,而arctanxxx x x x )
#include
10 239 515 3579
using namespace std;
double arctan(double x)
{ if(fabs(x)<=1e-14) return 0;
double t=-x*x*x,f=x; int k=3;
while(fabs(t/k/x)>1e-14) { f+=t/k; ; k+=2; } //当 | (xk/k)/x | ≤10-14 时结束
;
}
double pi( ) {return 32*arctan(1.0/10)-4*arctan(1.0/239)-16*arctan(1.0/515); } int main( ){ cout.precision(15); cout<< <
using namespace std;
const char *grade[ ]={“优”, “良”, “中”, “及格”, “不及格” , “分数错误”};
int level[ ]={ 90,80,70,60,0};
void sortScore(int *score,int n)
{ int count[ ]={0,0,0,0,0,0},i,*end,*p;
for( end= , p=score ; p
<
using namespace std; class Jose
{
private:
int n,k,last,*p; public:
Jose(int nn,int kk) ;
~Jose( ) { delete[ ]p;
int past(int pos) const
{ for(int s=0;
void process( ) //计算出圈子中最后剩下的人的编号 last
//last 记录最后剩下人的编号,n 个人编号为 1,2,…,n
}
//下一个报数到 k 的位置
; ) { pos=(pos+1)%n; if(p[pos]!=0) s++; } return pos;
}
; }
{ int r,pos=n-1; for( r=n;r>1;r–) int getLast( ) const { return
};
Jose::Jose(int nn,int kk)
{ n=nn; k=kk; p=new int[
for(int i=0;i
{ pos=past(pos);
p[pos]=0; } ; }
pos=past(pos); last=
];
cout<
{
private:
int size,n,*p;
void copy(int *pp,int ss,int nn) { size=ss; n=nn; p=new int[size]; for(int i=0;i
a.show( ); b.show( ); (a+b).show( ); (a-b).show( ); (a*b).show( ); return 0; }
5.[程序] 编程定义抽象类 shape。类 shape 派生出类 circle 和类 ellipse,分别描述圆和椭圆。类 shape 有 虚析构函数和纯虚函数 show 和 area,分别用于输出数据和求面积。主函数定义 shape 类的指针数组,并 调用input 函数混合输入若干个图形的数据,形式如下:
圆 10↙ 椭圆 6.6 5↙ 圆 20↙ 结束↙
由 shape 指针数组元素指向保存图形数据的动态对象,然后调用 output 输出指针数组中的对象,最后释放 指针数组元素指向的所有动态对象的空间。
#include
#include
using namespace std;
const double pi=3.141592653589793; class shape
{
public:
shape()
virtual virtual
{ }
void show( ) = 0; double area( ) = 0;
};
class circle: public shape {
private:
double r; public:
circle(double rr=0) {
~circle( ) { void show( ) double area( )
r=rr; }
{ cout<<"圆:半径 r="<
r,a,b; int
~ellipse( ) { void show( ) double area( )
{
}
{
cout<<"椭圆:x 半轴 a="<>s; }
p[n]=
{ cin>>a>>b; ;
; } p[n++]=new ellipse(a,b); }
{ cin>>r;
n=0 ; p[n++]=
4
void {
output(shape **p)
while(*p ) { (*p)->show(); cout<<"面积为:"<< <
#include
using namespace std;
bool Pythagoras(int &x,int &y,int &z) //调整正整数 x,y,z 为 x≤y≤z,判断是否 x2+y2=z2,是则返回 true { int t; if(x<=0| |y<=0| |z<=0) return false;
if(x>y) { t=x; x=y; y=t; }if(y>z) { t=y; y=z; z=t; } if(x>y) { t=x; x=y; y=t; }
return ; }
int main()
{ string fname; cout<<"输入文件的文件名为:"; cin>>fname;
ifstream ; if(!fin| |!fout) { cerr<<"打开文件失败"<
using namespace std;
void insert(double *a,int n,double x) ; { double *p=*a , *q ;
while(pp;q–) *q=*(q-1); *p=x;
}
int main( )
{ double d[11]={-12.3,-7.7,-2.7,-1.3,-0.7,-0.02,0.1,1.88,3.12,7,8.9};
for(int i=0;i<11;i++) cout<