[ create a new paste ] login | about

Link: http://codepad.org/Npav6vfP    [ raw code | output | fork ]

abccuong - C++, pasted on Jan 15:
#include<iostream>
using namespace std;
class Polynom
{
    private:
        int bac;
        double *heso;
    public:
        Polynom(int _bac = 0, double _heso = 0)
        {
            bac = _bac;
            heso = new double [bac];
            for(int i = 0; i <= bac; i++)
            {
                heso[i] = 0.0;
            }
            if(_heso == 0.0 ) heso[bac] = 1.0;
        }
        ~Polynom()
        {
            delete[] heso;
        }
        Polynom(Polynom &a)
        {
            bac = a.bac;
            heso = new double [bac];
            for(int i = 0; i <= bac; i++)
            {
                heso[i] = a.heso[i];
            }
        }
        Polynom operator=(Polynom a)
        {
            Polynom c;
            c.bac = a.bac;
            c.heso = new double [c.bac];
            for(int i = 0; i <= bac; i++)
            {
                c.heso[i] = a.heso[i];
            }
            return c;
        }
    friend istream &operator >>(istream &is, Polynom &a)
    {
        
        is >> a.bac;
        a.heso = new double[a.bac];
        for(int i = 0 ; i <= a.bac; i++)
        is >> a.heso[i];
        return is;
    }
    friend ostream &operator <<(ostream &os, Polynom a)
    {
        for(int i = 0; i <= a.bac; i++)
        os << a.heso[i] << "x^" << a.bac <<"+";
        return os;
    }
    friend Polynom operator +(Polynom a, Polynom b)
    {
        Polynom c;
            if(a.bac > b.bac) c.bac = a.bac;
            else c.bac = b.bac;
            c.heso = new double [c.bac];
            if(a.bac == b.bac)
            {
                for(int i = 0; i <= c.bac; i++)
                {
                    c.heso[i] = a.heso[i] + b.heso[i];
                }
            }
            if(a.bac > b.bac)
            {

                for(int i = 0; i <= b.bac; i++)
                {
                    c.heso[i] = a.heso[i] + b.heso[i];
                }
                for(int i = b.bac+1; i <= a.bac; i++)
                c.heso[i] = a.heso[i];
            }
            if(a.bac < b.bac)
            {

                for(int i = 0; i <= a.bac; i++)
                {
                    c.heso[i] = a.heso[i] + b.heso[i];
                }
                for(int i = a.bac+1; i <= c.bac; i++)
                c.heso[i] = b.heso[i];
            }
        return c;
    }
    friend Polynom operator*(Polynom a, double b)
    {
        Polynom c;
        c.bac = a.bac;
        c.heso = new double[c.bac];
        for(int i = 0; i <= c.bac; i++)
        c.heso[i] = a.heso[i] * b;
        return c;
    }
    double operator()(Polynom a, int n)
    {
        return a.heso[n];
    }
};
class Phanso
{
    private:
        float tu, mau;
    public:
        Phanso(float _tu = 0.0, float _mau = 1.0)
        {
            tu = _tu;
            mau = _mau;
        }
        friend Phanso operator+(Phanso a, Phanso b)
        {
            Phanso c;
            c.tu = (a.tu * b.mau + b.tu * a.mau);
            c.mau = (a.mau * b.mau);
            return c;
        }
        friend Phanso operator-(Phanso a, Phanso b)
        {
            Phanso c;
            c.tu = (a.tu * b.mau - b.tu * a.mau);
            c.mau = (a.mau * b.mau);
            return c;
        }
        friend Phanso operator*(Phanso a, Phanso b)
        {
            Phanso c;
            c.tu = (a.tu*b.tu);
            c.mau = (a.mau * b.mau);
            return c;
        }
        friend Phanso operator/(Phanso a, Phanso b)
        {
            Phanso c;
            c.tu = a.tu * b.mau;
            c.mau = a.mau * b.tu;
            return c;
        }
        friend istream &operator >>(istream &is, Phanso a)
        {
            is >> a.tu;
            is >> a.mau;
            return is;
        }
        friend ostream &operator <<(ostream &os, Phanso a)
        {
            os << a.tu << "/" << a.mau;
            return os;
        }
};
int main()
{
    Polynom a(3,1), b(3,1);
    cin >> a;
    cin >> b;
    cout << a << endl << b << endl;
    return 0;
}


Output:
1
2
-2.27152e-214x^3+-2.27152e-214x^3+-2.27152e-214x^3+8.70018e-313x^3+
-2.27152e-214x^3+-2.27152e-214x^3+-2.27152e-214x^3+8.70018e-313x^3+


Create a new paste based on this one


Comments: