All pastes #256630 Raw Edit

Miscellany

public cpp v1 · immutable
#256630 ·published 2006-11-24 13:27 UTC
rendered paste body
/* Deklaracja klasy i funkcji */class fraction{        private:                int gcd(int one, int two);                long int mNumerator;                long int mDenominator;        public:                fraction(int numenator, int denominator);                fraction(const fraction &model);                fraction& reduce();                //friend ostream& operator<<(ostream& screen, const fraction& rhs);                /* operatory */                fraction& operator*=(const fraction &rhs);                fraction& operator/=(const fraction &rhs);                fraction& operator+=(const fraction &rhs);                fraction& operator-=(const fraction &rhs);                fraction& operator=(const fraction &rhs);                fraction operator+(const fraction &rhs);                fraction operator-(const fraction &rhs);                fraction operator*(const fraction &rhs);                fraction operator/(const fraction &rhs);                fraction& operator--(void);                fraction& operator++(void);};/* globalne *//*ostream& operator<<(ostream& screen, const fraction& rhs){        screen<<rhs.mNumerator<<"/"<<rhs.mDenominator;        return screen;}*//* konstruktory */fraction::fraction(int numenator=0, int denominator=1):mNumerator(numenator), mDenominator(denominator){}/***/fraction::fraction(const fraction &model):mNumerator(model.mNumerator), mDenominator(model.mDenominator){};/* funkcje */int fraction::gcd(int one, int two){        int result;        for(; ;){                if (two!=0){                        result = one % two;                        one = two;                        two = result;                }                else{                        result = one;                        break;                }        }        return result;}/***/fraction& fraction::reduce(){        int divider=gcd(mNumerator, mDenominator);        mNumerator/=divider;        mDenominator/=divider;        return (*this);}/* operatory */fraction& fraction::operator*=(const fraction &rhs){        mNumerator *= rhs.mNumerator;        mDenominator *= rhs.mDenominator;        return (*this);}fraction& fraction::operator/=(const fraction &rhs){        mNumerator *= rhs.mDenominator;        mDenominator *= rhs.mNumerator;        return (*this);}fraction& fraction::operator+=(const fraction &rhs){        if(mDenominator==rhs.mDenominator)                mNumerator+=rhs.mNumerator;        else{                mNumerator=(mNumerator*rhs.mDenominator)+(rhs.mNumerator*mDenominator);                mDenominator*=rhs.mDenominator;        }        return (*this);}fraction& fraction::operator-=(const fraction &rhs){        if(mDenominator==rhs.mDenominator)                mNumerator-=rhs.mNumerator;        else{                mNumerator=(mNumerator*rhs.mDenominator)-(rhs.mNumerator*mDenominator);                mDenominator*=rhs.mDenominator;        }        return (*this);}fraction& fraction::operator=(const fraction &rhs){        mNumerator=rhs.mNumerator;        mDenominator=rhs.mDenominator;        return (*this);}fraction fraction::operator+(const fraction &rhs){        fraction result(*this);        if(result.mDenominator==rhs.mDenominator)                result.mNumerator+=rhs.mNumerator;        else{                result.mNumerator=(mNumerator*rhs.mDenominator)+(rhs.mNumerator*mDenominator);                result.mDenominator*=rhs.mDenominator;        }        return result;}fraction fraction::operator-(const fraction &rhs){        fraction result(*this);        if(result.mDenominator==rhs.mDenominator)                result.mNumerator-=rhs.mNumerator;        else{                result.mNumerator=(mNumerator*rhs.mDenominator)-(rhs.mNumerator*mDenominator);                result.mDenominator*=rhs.mDenominator;        }        return result;}fraction fraction::operator*(const fraction &rhs){        fraction result(*this);        result.mNumerator*=rhs.mNumerator;        result.mDenominator*=rhs.mDenominator;        return result;}fraction fraction::operator/(const fraction &rhs){        fraction result(*this);        result.mNumerator*=rhs.mDenominator;        result.mDenominator*=rhs.mNumerator;        return result;}fraction& fraction::operator--(void){        mNumerator-=mDenominator;        return (*this);}fraction& fraction::operator++(void){        mNumerator+=mDenominator;        return (*this);}