MeehoweCK

Untitled

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