// Fraction.cpp: implementation of the Fraction class. // ////////////////////////////////////////////////////////////////////// #include "Fraction.h" #include "main.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Fraction::Fraction() { mechane=1; mone=0; shalem=0; } Fraction::Fraction(int shalem1,int mone1, int mechane1) { mechane=mechane1; mone=mone1; shalem=shalem1; } Fraction::~Fraction() { } Fraction Fraction::operator+(Fraction fract1) { Fraction fract_new; int shalem_temp; int mechane_temp; int mone_temp; shalem_temp=shalem+fract1.shalem; mone_temp=mone*fract1.mechane+fract1.mone*mechane; mechane_temp=mechane*fract1.mechane; // fract_new.shalem=shalem_temp; fract_new.mone=mone_temp; fract_new.mechane=mechane_temp; //fract_new=shalem+fract1.shalem; return fract_new; } void Fraction::operator=(Fraction fract1) { shalem=fract1.shalem; mone=fract1.mone; mechane=fract1.mechane; } // // (fraction-int) operations: // Fraction Fraction::operator+(int shalem1) { Fraction fract_new; // fract_new.shalem=shalem+shalem1; fract_new.mone=mone; fract_new.mechane=mechane; return fract_new; } void Fraction::operator=(int shalem1) { shalem=shalem1; // mone=mone; // mechane=mechane; } Fraction Fraction::reduce() { // Reduction of the fraction // for example: // // 2 1 // 3- = 3- // 4 2 // Fraction fract_new; int shalem_temp; int mechane_temp; int mone_temp; int gcd_value; shalem_temp=0; mone_temp=shalem*mechane+mone; mechane_temp=mechane; // ---------------------------- shalem_temp=mone_temp/mechane_temp; mone_temp=mone_temp-shalem_temp*mechane_temp; // mechane_temp without change. // ----------------------------------- gcd_value=gcd(mone_temp,mechane_temp); // shalem_temp - without change mone_temp/=gcd_value; mechane_temp/=gcd_value; // fract_new.shalem=shalem_temp; fract_new.mone=mone_temp; fract_new.mechane=mechane_temp; //fract_new=shalem+fract1.shalem; return fract_new; }