MeehoweCK

Untitled

Dec 21st, 2020
1,103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Wymierna  // liczba wymierna to liczba, którą da się zapisać jako ułamek zwykły, gdzie licznik i mianownik są liczbami całkowitymi
  6. {
  7.     friend Wymierna iloczyn(Wymierna, Wymierna);        // zaprzyjaźnienie funkcji
  8.     friend Wymierna operator*(Wymierna, Wymierna);
  9.     friend ostream& operator<<(ostream&, const Wymierna);
  10.     int licznik;
  11.     int mianownik;
  12. public:
  13.     Wymierna();     // pusty konstruktor (tworzy liczbę 0)
  14.     Wymierna(int);  // konstruktor tworzący liczbę całkowitą
  15.     Wymierna(int, int); // konstruktor tworzący liczbę wymierną niecałkowitą
  16.     void set_licznik(int l) { licznik = l; }
  17.     void set_mianownik(int m) { mianownik = m; }
  18.     double wartosc() { return 1.0 * licznik / mianownik; }
  19. };
  20.  
  21. Wymierna::Wymierna() : licznik(0), mianownik(1) {}
  22.  
  23. Wymierna::Wymierna(int l) : licznik(l), mianownik(1) {}
  24.  
  25. Wymierna::Wymierna(int l, int m) : licznik(l), mianownik(m)
  26. {
  27.     if(m == 0)
  28.         mianownik = 1;
  29. }
  30.  
  31. Wymierna iloczyn(Wymierna A, Wymierna B)
  32. {
  33.     Wymierna wynik(A.licznik * B.licznik, A.mianownik * B.mianownik);
  34.     return wynik;
  35. }
  36.  
  37. Wymierna operator*(Wymierna A, Wymierna B)
  38. {
  39.     Wymierna wynik(A.licznik * B.licznik, A.mianownik * B.mianownik);
  40.     return wynik;
  41. }
  42.  
  43. ostream& operator<<(ostream& strumien, const Wymierna obiekt)
  44. {
  45.     if(obiekt.mianownik == 1)
  46.         strumien << obiekt.licznik;
  47.     else
  48.         strumien << obiekt.licznik << '/' << obiekt.mianownik;
  49.     return strumien;
  50. }
  51.  
  52. int main()
  53. {
  54.     Wymierna A(3,2), B(5,3);
  55.     Wymierna C = A * B;
  56.     cout << C;
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment