MeehoweCK

Untitled

Mar 15th, 2021
733
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Wymierna
  6. {
  7. private:
  8.     int licznik;
  9.     int mianownik;
  10. public:
  11.     Wymierna();
  12.     Wymierna(int);
  13.     Wymierna(int, int);
  14.     void ustaw_licznik(int);
  15.     void ustaw_mianownik(int);
  16.     int pobierz_licznik();
  17.     int pobierz_mianownik();
  18.     void skroc();
  19.     void wypisz_ulamek();
  20.     double pobierz_wartosc();
  21. };
  22.  
  23. int nwd(int a, int b)
  24. {
  25.     if(a * b == 0)
  26.         return 1;
  27.     if(a < 0)
  28.         a = -a;
  29.     if(b < 0)
  30.         b = -b;
  31.     while(a != b)
  32.     {
  33.         if(a > b)
  34.             a -= b;
  35.         if(b > a)
  36.             b -= a;
  37.     }
  38.     return a;
  39. }
  40.  
  41. Wymierna::Wymierna() : licznik(0), mianownik(1) {}   // konstruktor tworzący obiekt o wartości 0
  42.  
  43. Wymierna::Wymierna(int liczba) : licznik(liczba), mianownik(1) {}
  44.  
  45. Wymierna::Wymierna(int l, int m) : licznik(l), mianownik(m) {}
  46.  
  47. void Wymierna::ustaw_licznik(int l)
  48. {
  49.     licznik = l;
  50. }
  51.  
  52. void Wymierna::ustaw_mianownik(int m)
  53. {
  54.     mianownik = m;
  55. }
  56.  
  57. int Wymierna::pobierz_licznik()
  58. {
  59.     return licznik;
  60. }
  61.  
  62. int Wymierna::pobierz_mianownik()
  63. {
  64.     return mianownik;
  65. }
  66.  
  67. void Wymierna::skroc()
  68. {
  69.     int dzielnik = nwd(licznik, mianownik);
  70.     licznik /= dzielnik;
  71.     mianownik /= dzielnik;
  72. }
  73.  
  74. void Wymierna::wypisz_ulamek()
  75. {
  76.     cout << licznik << '/' << mianownik << endl;
  77. }
  78.  
  79. double Wymierna::pobierz_wartosc()
  80. {
  81.     return 1.0 * licznik / mianownik;
  82. }
  83.  
  84. Wymierna iloczyn(Wymierna A, Wymierna B)
  85. {
  86.     Wymierna wynik(A.pobierz_licznik() * B.pobierz_licznik(), A.pobierz_mianownik() * B.pobierz_mianownik());
  87.     wynik.skroc();
  88.     return wynik;
  89. }
  90.  
  91. int main()
  92. {
  93.     Wymierna A(8, 16);
  94.     Wymierna B(2,3);
  95.     Wymierna wynik = iloczyn(A, B);
  96.     wynik.wypisz_ulamek();
  97.  
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment