Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.cpp
- #include "Wymierna.h"
- int main()
- {
- Wymierna liczba1(4,10);
- Wymierna liczba2(1,5);
- Wymierna wynik = liczba1 + liczba2;
- wynik += 3;
- wynik.wypisz();
- return 0;
- }
- // Wymierna.h
- class Wymierna
- {
- friend Wymierna operator+(Wymierna, 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;
- };
- // head.h
- int NWD(int, int);
- // Wymierna.cpp
- #include <iostream>
- #include "Wymierna.h"
- using namespace std;
- Wymierna::Wymierna(int l, int m)
- {
- licznik = l;
- mianownik = m;
- }
- Wymierna::Wymierna(int liczba)
- {
- licznik = liczba;
- mianownik = 1;
- }
- void Wymierna::operator+=(int liczba)
- {
- licznik += liczba * mianownik;
- }
- double Wymierna::wartosc() const
- {
- return 1.0 * licznik / mianownik;
- }
- int Wymierna::get_licznik() const {return licznik;}
- int Wymierna::get_mianownik() const {return mianownik;}
- void Wymierna::wypisz() const {cout << licznik << "/" << mianownik;}
- // 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement