#include "Fraction.h" #include "../Rational.h" #include #include using namespace std; Fraction::Fraction(long long int num, long long int denum) { cout << num << "suka Fraction zaebal" << denum << endl; long long int layer, spec; while(abs(num) > 1 or abs(denum) > 1) { if (num == 0 or denum == 0) break; layer = num / denum; spec = denum; denum = num - (layer*denum); num = spec; cout << layer << endl; layers.add(layer); cout << layers << endl; } cout << "new bleat vse ok" << endl; } Fraction::Fraction(Rational r) { Fraction(r.num, r.denum); } Fraction::Fraction(double x) { Fraction(Rational(x)); } Fraction::operator Rational() { cout << "Fractional problem" << endl; long long num = 1; long long denum = layers.pop(); long long int spec; cout << '(' << num << '/' << denum << ')' << endl; while(layers.lenght > 0) { spec = denum; denum = num + denum * layers.pop(); num = spec; cout << '(' << num << '/' << denum << ')' << endl; } cout << "No Fractional problem" << endl; return Rational(denum, num); } Fraction::operator double() { return double(Rational(*this)); } Fraction::operator int() { return int(double(*this)); } ostream& operator <<(ostream& out, Fraction& f) { cout << "<< oper" << endl; out << f.layers; return out; } void Fraction::show() { cout << layers << endl; }