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

Tags: