Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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: Truyen247.Pro

Tags: