Advertisement
MeehoweCK

Untitled

Dec 21st, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. // main.cpp
  2. #include "Wymierna.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     Wymierna liczba1(4,10);
  10.     Wymierna liczba2(1,5);
  11.     Wymierna wynik = liczba1 + liczba2;
  12.     wynik += 3;
  13.     wynik.wypisz();
  14.  
  15.     Wymierna liczba(2,7);
  16.     wynik = 2 + 5;
  17.     cout << endl;
  18.     wynik.wypisz();
  19.  
  20.     Wymierna nowa(1,3);
  21.     cout << endl;
  22.     if(liczba > nowa)
  23.         cout << "true";
  24.     else
  25.         cout << "false";
  26.  
  27.     cout << endl << nowa << endl;
  28.  
  29.     cout << liczba1 << " + " << liczba2 << " = " << liczba1 + liczba2 << endl;
  30.  
  31.     return 0;
  32. }
  33.  
  34. // Wymierna.h
  35. #include <iostream>
  36.  
  37. using namespace std;
  38.  
  39. class Wymierna
  40. {
  41.     friend Wymierna operator+(Wymierna, Wymierna);
  42.     friend bool operator>(Wymierna, Wymierna);
  43.     friend ostream& operator<<(ostream&, const Wymierna&);
  44. private:        // pola (cechy obiektu)
  45.     int licznik;
  46.     int mianownik;
  47. public:         // metody (akcje obiektu)
  48.     Wymierna(int, int);     // konstruktor
  49.     Wymierna(int);
  50.     void operator+=(int);
  51.     void wypisz() const;
  52.     double wartosc() const;
  53.     int get_licznik() const;
  54.     int get_mianownik() const;
  55. };
  56.  
  57. // funkcje.cpp
  58. #include "Wymierna.h"
  59. #include "head.h"
  60.  
  61. int NWD(int a, int b)
  62. {
  63.     for(int i = a; true; --i)
  64.     {
  65.         if(a % i == 0)
  66.             if(b % i ==0)
  67.                 return i;
  68.     }
  69. }
  70.  
  71. Wymierna operator+(Wymierna a, Wymierna b)
  72. {
  73.     Wymierna wynik(a.licznik * b.mianownik + b.licznik * a.mianownik, a.mianownik * b.mianownik);
  74.     int nwd = NWD(wynik.licznik, wynik.mianownik);
  75.     wynik.licznik /= nwd;
  76.     wynik.mianownik /= nwd;
  77.     return wynik;
  78. }
  79.  
  80. bool operator>(Wymierna a, Wymierna b)
  81. {
  82.     if(a.wartosc() > b.wartosc())
  83.         return true;
  84.     return false;
  85. }
  86.  
  87. ostream& operator<<(ostream& out, const Wymierna& liczba)
  88. {
  89.     if(liczba.mianownik == 1)
  90.         out << liczba.licznik;
  91.     else
  92.         out << liczba.licznik << "/" << liczba.mianownik;
  93.     return out;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement