#include "razlomak.hpp" int Razlomak::vratiBrojilac() const { return _brojilac; } int Razlomak::vratiImenilac() const { return _imenilac; } void Razlomak::postaviBrojilac(int x) { _brojilac = x; } void Razlomak::postaviImenilac(int x) { _imenilac = x; } void Razlomak::pisi(ostream &izlaz) const { izlaz << _brojilac << "/" << _imenilac; } void Razlomak::citaj(istream &ulaz) { ulaz >> _brojilac; char c; ulaz >> c; if (c != '/') throw "Greska pri ucitavanju razlomka"; ulaz >> _imenilac; } ostream& operator << (ostream &izlaz, const Razlomak &r) { r.pisi(izlaz); return izlaz; } istream& operator >> (istream &ulaz, Razlomak &r) { r.citaj(ulaz); return ulaz; } Razlomak Razlomak::operator+(const Razlomak &p) const { return Razlomak( _brojilac * p._imenilac + p._brojilac * _imenilac, _imenilac * p._imenilac ); } Razlomak Razlomak::operator-(const Razlomak &p) const { return Razlomak( _brojilac * p._imenilac - p._brojilac * _imenilac, _imenilac * p._imenilac ); } Razlomak Razlomak::operator~() const { return Razlomak(_imenilac, _brojilac); } Razlomak Razlomak::operator++() { _brojilac += _imenilac; return *this; } Razlomak Razlomak::operator++(int) { Razlomak tmp(*this); _brojilac += _imenilac; return tmp; } bool Razlomak::operator<(const Razlomak &p) const { return _brojilac * p._imenilac < p._brojilac * _imenilac; } bool Razlomak::operator==(const Razlomak &p) const { return _brojilac * p._imenilac == p._brojilac * _imenilac; } bool Razlomak::operator<=(const Razlomak &p) const { return *this < p || *this == p; } Razlomak::operator double() const { return (double)_brojilac / _imenilac; }