123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include "Fraction.h"
- #include "../Rational.h"
- #include <iostream>
- #include <cmath>
- 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;
- }
|