Advertisement
MeehoweCK

Untitled

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