Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.cpp
- #include "Wymierna.h"
- #include <iostream>
- using namespace std;
- int main()
- {
- Wymierna liczba1(4,10);
- Wymierna liczba2(1,5);
- Wymierna wynik = liczba1 + liczba2;
- wynik += 3;
- wynik.wypisz();
- Wymierna liczba(2,7);
- wynik = 2 + 5;
- cout << endl;
- wynik.wypisz();
- Wymierna nowa(1,3);
- cout << endl;
- if(liczba > nowa)
- cout << "true";
- else
- cout << "false";
- cout << endl << nowa << endl;
- cout << liczba1 << " + " << liczba2 << " = " << liczba1 + liczba2 << endl;
- return 0;
- }
- // Wymierna.h
- #include <iostream>
- using namespace std;
- class Wymierna
- {
- friend Wymierna operator+(Wymierna, Wymierna);
- friend bool operator>(Wymierna, Wymierna);
- friend ostream& operator<<(ostream&, const Wymierna&);
- private: // pola (cechy obiektu)
- int licznik;
- int mianownik;
- public: // metody (akcje obiektu)
- Wymierna(int, int); // konstruktor
- Wymierna(int);
- void operator+=(int);
- void wypisz() const;
- double wartosc() const;
- int get_licznik() const;
- int get_mianownik() const;
- };
- // funkcje.cpp
- #include "Wymierna.h"
- #include "head.h"
- int NWD(int a, int b)
- {
- for(int i = a; true; --i)
- {
- if(a % i == 0)
- if(b % i ==0)
- return i;
- }
- }
- Wymierna operator+(Wymierna a, Wymierna b)
- {
- Wymierna wynik(a.licznik * b.mianownik + b.licznik * a.mianownik, a.mianownik * b.mianownik);
- int nwd = NWD(wynik.licznik, wynik.mianownik);
- wynik.licznik /= nwd;
- wynik.mianownik /= nwd;
- return wynik;
- }
- bool operator>(Wymierna a, Wymierna b)
- {
- if(a.wartosc() > b.wartosc())
- return true;
- return false;
- }
- ostream& operator<<(ostream& out, const Wymierna& liczba)
- {
- if(liczba.mianownik == 1)
- out << liczba.licznik;
- else
- out << liczba.licznik << "/" << liczba.mianownik;
- return out;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement