Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. /* Dejwo to ziomal */
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. typedef struct Ulamki
  7. {
  8.     int licznik;
  9.     int mianownik;
  10. }Ulamek;
  11.  
  12. int NWD(int a, int b)
  13. {
  14.     while(b)swap(a %= b, b);
  15.     return a;
  16. }
  17. int NWW(int a, int b)
  18. {
  19.     return(a*b/NWD(a,b));
  20. }
  21.  
  22. Ulamek dodaj(Ulamek a, Ulamek b);
  23. Ulamek pomnoz(Ulamek a, Ulamek b);
  24. Ulamek odejmij(Ulamek a, Ulamek b);
  25. Ulamek podziel(Ulamek a, Ulamek b);
  26.  
  27. Ulamek *dodaj2(Ulamek a, Ulamek b);
  28. Ulamek *pomnoz2(Ulamek a, Ulamek b);
  29. Ulamek *odejmij2(Ulamek a, Ulamek b);
  30. Ulamek *podziel2(Ulamek a, Ulamek b);
  31.  
  32. int main()
  33. {
  34.     ios_base::sync_with_stdio(0);
  35.     Ulamek a,b;
  36.     a.licznik = 1; a.mianownik = 2;
  37.     b.licznik = 2; b.mianownik = 3;
  38.     cout<<"Rozwazam : "<<a.licznik<<" / "<<a.mianownik<<"   oraz   "<<b.licznik<<" / "<<b.mianownik<<"\n\n";
  39.     cout<<"Dodawanie: "<<dodaj(a, b).licznik <<" / " <<dodaj(a, b).mianownik<<"\n";
  40.     cout<<"Mnozenie: "<<pomnoz(a, b).licznik << " / "<<pomnoz(a, b).mianownik<<"\n";
  41.     cout<<"Odejmowanie: "<<odejmij(a, b).licznik <<" / " <<odejmij(a, b).mianownik<<"\n";
  42.     cout<<"Dzielenie: "<<podziel(a, b).licznik <<" / " <<podziel(a, b).mianownik<<"\n";
  43.     cout<<"\nMetoda wskaznikowa: \n\n";
  44.     cout<<"Dodawanie: "<<dodaj2(a, b)->licznik <<" / " <<dodaj(a, b).mianownik<<"\n";
  45.     cout<<"Mnozenie: "<<pomnoz2(a, b)->licznik << " / "<<pomnoz2(a, b)->mianownik<<"\n";
  46.     cout<<"Odejmowanie: "<<odejmij2(a, b)->licznik <<" / " <<odejmij2(a, b)->mianownik<<"\n";
  47.     cout<<"Dzielenie: "<<podziel2(a, b)->licznik <<" / " <<podziel2(a, b)->mianownik<<"\n";
  48.    
  49.    
  50.  
  51.    
  52.     return 0;
  53. }
  54.  
  55. void skroc(Ulamek &a)
  56. {
  57.     int nwd  = NWD(a.licznik, a.mianownik);
  58.     a.licznik /= nwd;
  59.     a.mianownik /= nwd;
  60. }
  61.  
  62. Ulamek dodaj(Ulamek a, Ulamek b)
  63. {
  64.     int WspMian = NWW(a.mianownik, b.mianownik);
  65.     a.licznik *= WspMian / a.mianownik;
  66.     b.licznik *= WspMian / b.mianownik;
  67.     b.mianownik = a.mianownik = WspMian;
  68.     a.licznik +=b.licznik;
  69.     skroc(a);
  70.     return a;
  71. }
  72.  
  73. Ulamek pomnoz(Ulamek a, Ulamek b)
  74. {
  75.     a.licznik *= b.licznik;
  76.     a.mianownik *= b.mianownik;
  77.     skroc(a);
  78.     return a;
  79. }
  80.  
  81. Ulamek odejmij(Ulamek a, Ulamek b)
  82. {
  83.     int WspMian = NWW(a.mianownik, b.mianownik);
  84.     a.licznik *= WspMian / a.mianownik;
  85.     b.licznik *= WspMian / b.mianownik;
  86.     b.mianownik = a.mianownik = WspMian;
  87.     a.licznik -=b.licznik;
  88.    if(a.licznik > 0) skroc(a);
  89.     else
  90.     {
  91.         a.licznik *= -1;
  92.         skroc(a);
  93.         a.licznik*=-1;
  94.     }
  95.     return a;
  96. }
  97.  
  98. Ulamek podziel(Ulamek a, Ulamek b)
  99. {
  100.     swap(b.licznik, b.mianownik);
  101.     return pomnoz(a, b);
  102. }
  103.  
  104. Ulamek *dodaj2(Ulamek a, Ulamek b)
  105. {
  106.     Ulamek *wynik = new Ulamek;
  107.     *wynik=dodaj(a, b);
  108.     return wynik;
  109. }
  110.  
  111. Ulamek *pomnoz2(Ulamek a, Ulamek b)
  112. {
  113.     {
  114.         Ulamek *wynik = new Ulamek;
  115.         *wynik=pomnoz(a, b);
  116.         return wynik;
  117.     }
  118. }
  119.  
  120. Ulamek *odejmij2(Ulamek a, Ulamek b)
  121. {
  122.     Ulamek *wynik = new Ulamek;
  123.     *wynik=odejmij(a, b);
  124.     return wynik;
  125. }
  126.  
  127. Ulamek *podziel2(Ulamek a, Ulamek b)
  128. {
  129.     Ulamek *wynik = new Ulamek;
  130.     *wynik=podziel(a, b);
  131.     return wynik;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement