#include "razlomak.hpp" 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) { char c; ulaz >> _brojilac >> c >> _imenilac; if (c != '/') throw "Neuspesno ucitavanje razlomka"; } 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 &y) const { return Razlomak(vratiBrojilac() * y.vratiImenilac() + vratiImenilac() * y.vratiBrojilac(), vratiImenilac() * y.vratiImenilac()); } Razlomak Razlomak::operator-(const Razlomak &y) const { return Razlomak(vratiBrojilac() * y.vratiImenilac() - vratiImenilac() * y.vratiBrojilac(), vratiImenilac() * y.vratiImenilac()); } Razlomak Razlomak::operator*(const Razlomak &y) const { return Razlomak(vratiBrojilac() * y.vratiBrojilac(), vratiImenilac() * y.vratiImenilac()); } Razlomak Razlomak::operator/(const Razlomak &y) const { return Razlomak(vratiBrojilac() * y.vratiImenilac(), vratiImenilac() * y.vratiBrojilac()); } Razlomak Razlomak::operator~() const { return Razlomak(_imenilac, _brojilac); } Razlomak::operator double() const { return (double)_brojilac / _imenilac; }