bbbbbbbbb
//Tao class da thuc
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<math.h>
//------------
class dathuc
{
private:
double*a;
public:
dathuc();
dathuc(int nn);
~dathuc();
void nhap();
void in();
dathuc operator-();
dathuc operator+(const dathuc &dt);
dathuc operator-(dathuc &dt);
dathuc operator*(const dathuc &dt);
double operator[](int i);
friend double gt(dathuc dt, double&x);
};
//------------
dathuc::dathuc()
{
n=0;a=0;
}
//-------------
dathuc::dathuc(int nn)
{
n=nn;
}
//------------
dathuc::~dathuc()
{
delete []a;
}
//----------
void dathuc::nhap()
{
a=new double[100];
cout<<"
Nhap bac cua da thuc: ";cin>>n;
for(int i=1;i<=n+1;i++)
{
cout<<"
Nhap phan tu thu "<<i<<":";cin>>a[i];
}
}
//------------
void dathuc::in(){
for( i =1 ; i <= n+1 ; i++ )
cout <<" "<<a[i]<<"X^"<<i-1<<" +";
printf("\b ");
}
//-----------
dathuc dathuc::operator -(){
dathuc mdt;
mdt.a = new double[100];
mdt.n = this->n;
for( int i = 1 ; i <= mdt.n+1 ; i++ )
mdt.a[i] = -this->a[i];
return mdt;
}
//-----------
dathuc dathuc::operator+(const dathuc &dt)
{
dathuc mdt,uc;
mdt.n=this->n;
mdt.a=new double[100];
uc.a=new double[100];
for(int i=1;i<=n+1;i++)
mdt.a[i]=this->a[i];
if(mdt.n<dt.n){uc.n=dt.n;}
else uc.n=mdt.n;
for(int i=1;i<=uc.n+1;i++)
uc.a[i]=mdt.a[i]+dt.a[i];
return uc;
}
//-----------
dathuc dathuc::operator-(dathuc &dt)
{
dathuc mdt,uc;
mdt.n=this->n;
mdt.a=new double[100];
uc.a=new double[100];
for(int i=1;i<=n+1;i++)
mdt.a[i]=this->a[i];
if(mdt.n<dt.n){uc.n=dt.n;}
else uc.n=mdt.n;
for(int i=1;i<=uc.n+1;i++)
uc.a[i]=mdt.a[i]-dt.a[i];
return uc;
}
//-------------
dathuc dathuc::operator *(const dathuc &dt){
dathuc mdt,uc;
mdt.n = this->n;
mdt.a = new double[100];
uc.a = new double[100];
uc.n = mdt.n + dt.n;
for( int i =1 ; i <= n+1 ; i++ )
mdt.a[i] = this-> a[i];
for( int i = 1 ; i <= mdt.n+1; i++ )
for( int j = 1 ; j <= dt.n+1 ; j++ )
{uc.a[i+j-1] += mdt.a[i]*dt.a[j];}
return uc;
}
//------------
double dathuc::operator[](int i)
{
return(a[i]);
}
//-----------
double gt(dathuc dt, double &x)
{
double b=0;
for(int i=dt.n+1;i>=1;i--)
b=dt[i]+b*x;
return b;
}
//------------
int main()
{
double x;
dathuc dt1,dt2,dt;
cout<<"
Nhap:";
cout<<"
Dt 1:
";dt1.nhap();dt1.in();
cout<<"
Dt 2:
";dt2.nhap();dt2.in();
dt=dt1+dt2;
cout<<"
Tong:";dt.in();
dt=dt1-dt2;
cout<<"
Tru:";dt.in();
dt=dt1*dt2;
cout<<"
Tich:";dt.in();
cout<<"
Nhap gtri X: ";cin>>x;
cout<<"
Gtri dt1: "<<gt(dt1,x);
cout<<"
Gtri dt2: "<<gt(dt2,x);
getch();
}
Bạn đang đọc truyện trên: AzTruyen.Top