Witam, potrzebuję w poniższym programie dopisać do klasy Ulamek operatory umożliwiające:
- zmianę znaku, operacje dodawania, odejmowania, mnożenia i dzielenia
- porównywanie dwóch ułamków
- wypisywanie ułamka na konsole / do pliku
- rzutowanie na typ double
- dostęp do licznika i mianownika za pomocą indeksowania [ ]
Niestety nie mam żadnego pomysłu, jak to poprawnie zaimplementować).
Za wszelką pomoc z góry dziękuję, oto kod:
#include <iostream>
class Ulamek {
int licznik;
int mianownik;
public:
Ulamek(int licz, int mian) {
if (mian != 0) {
licznik = licz;
mianownik = mian;
if (mianownik < 0) {
licznik *= (-1);
mianownik *= (-1);
}
} else {
std::cout << "Mianownik nie moze byc rowny 0 !!";
exit(0);
}
}
Ulamek(const Ulamek & f1) {
licznik = f1.licznik;
mianownik = f1.mianownik;
}
int getLicznik() {
return licznik;
}
int getMianownik() {
return mianownik;
}
void setLicznik(int x) {
licznik = x;
}
void setMianownik(int y) {
if (y != 0) {
mianownik = y;
} else {
std::cout << "0 nie moze byc w mianowniku!" << std::endl;
exit(0);
}
}
void simplify(int a, int b) {
while (a != b)
if (a > b) {
a -= b;
}
else {
b -= a;
}
licznik /= a;
mianownik /= b;
}
void wypisz() {
std::cout << "Podany ulamek to: " << licznik << "/" << mianownik << std::endl;
}
float toFloat() {
float dziesietny;
dziesietny = float(licznik) / float(mianownik);
return dziesietny;
}
};
int main() {
return 0;
}