Advertisement
adwas33

Untitled

Dec 17th, 2022
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int NWD(int a, int b)
  6. {
  7. int pom;
  8.  
  9. while(b!=0)
  10. {
  11. pom = b;
  12. b = a%b;
  13. a = pom;
  14. }
  15.  
  16. return a;
  17. }
  18. class Ulamek
  19. {
  20. public:
  21. Ulamek(int licznik, int mianownik);
  22.  
  23. Ulamek(int licznik);
  24. operator double ()
  25. {
  26. return (double)licznik/mianownik;
  27. }
  28. void skroc_ulamek(){
  29. int maksymalna = NWD(licznik,mianownik);
  30. licznik=licznik/maksymalna;
  31. mianownik=mianownik/maksymalna;
  32. }
  33.  
  34. friend std::ostream &operator<<(std::ostream &os, const Ulamek &ulamek);
  35.  
  36. private:
  37. friend Ulamek dodaj(Ulamek,Ulamek);
  38. int licznik,mianownik=1;
  39.  
  40. };
  41. Ulamek dodaj(Ulamek pierwszy,Ulamek drugi)
  42. {
  43.  
  44. if(drugi.mianownik!=pierwszy.mianownik)
  45. {
  46. pierwszy.licznik=pierwszy.licznik*drugi.mianownik;// sprowadzanie do wspólnego mianownika
  47. drugi.licznik=drugi.licznik*pierwszy.mianownik;
  48. return Ulamek(drugi.licznik+pierwszy.licznik,pierwszy.mianownik);
  49.  
  50. } else return Ulamek(drugi.licznik+pierwszy.licznik,drugi.mianownik);
  51. }
  52.  
  53. Ulamek::Ulamek(int licznik, int mianownik) : licznik(licznik), mianownik(mianownik) {}
  54.  
  55. Ulamek::Ulamek(int licznik) : licznik(licznik) {}
  56.  
  57. std::ostream &operator<<(std::ostream &os, const Ulamek &ulamek) {
  58. if(ulamek.mianownik!=1)
  59. os << ulamek.licznik << " / " << ulamek.mianownik;
  60. else os<<ulamek.licznik;
  61.  
  62. return os;
  63. }
  64.  
  65. double kwadrat_liczby(double ulamek)
  66. {
  67. return ulamek*ulamek;
  68. }
  69.  
  70. int main() {
  71. Ulamek tablica[3] = {Ulamek(1,2),Ulamek(5,8),Ulamek(7,9)};
  72. cout<<tablica[0]<<endl<<tablica[1]<<endl<<tablica[2]<<endl;
  73. cout<<dodaj(tablica[0],tablica[1])<<endl;
  74. cout<<dodaj(tablica[0],7)<<endl;
  75. cout<<kwadrat_liczby(tablica[2])<<endl;
  76. Ulamek nowy(88,22);
  77. nowy.skroc_ulamek();
  78. cout<<nowy;
  79.  
  80. return 0;
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement