Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int NWD(int a, int b)
  6. {
  7.     while(a!=b)
  8.         if(a>b)
  9.             a-=b; //lub a = a - b;
  10.         else
  11.             b-=a; //lub b = b-a
  12.     return a; // lub b - obie zmienne przechowują wynik NWD(a,b)
  13. }
  14.  
  15. class Ulamek{
  16.  
  17.     int licznik;
  18.     int mianownik;
  19. public:
  20.  
  21.     Ulamek(int licz, int mian){
  22.  
  23.         licznik = licz;
  24.         mianownik = mian;
  25.     }
  26.     Ulamek(const Ulamek& u){
  27.         mianownik = u.mianownik;
  28.         licznik = u.licznik;
  29.     }
  30.     Ulamek dodaj(const Ulamek& u) const{
  31.  
  32.      int x = this->licznik * u.mianownik;
  33.      int y = this->mianownik * u.mianownik;
  34.      int a = u.licznik * this->mianownik;
  35.         return Ulamek(x+a,y);
  36.  
  37.     }
  38.     Ulamek mnoz(const Ulamek& u) const{
  39.         return Ulamek(this->licznik*u.licznik, this->mianownik*u.mianownik);
  40.     }
  41.     friend ostream& operator<<(ostream& str, Ulamek u){
  42.  
  43.         int x = u.licznik%u.mianownik;
  44.         if(x==0){
  45.             return str << u.licznik / u.mianownik;
  46.         }
  47.         int y = (u.licznik - x)/u.mianownik;
  48.          int  a = NWD(abs(u.mianownik), abs(x));
  49.          x = x/a;
  50.          u.mianownik = u.mianownik/a;
  51.         return str << y << " " << abs(x) << "/" << abs(u.mianownik);
  52.     }
  53.     friend Ulamek operator+(const Ulamek& u, const Ulamek& v){
  54.         return u.dodaj(v);
  55.     }
  56.  
  57. };
  58.  
  59. int main() {
  60.  
  61.     Ulamek u1 = Ulamek(-10,-9);
  62.     Ulamek u2 = Ulamek(-8,6);
  63.     Ulamek u3 = Ulamek(15,5);
  64.  
  65.  
  66.     cout<<u1<<endl;
  67.     cout<<u2<<endl;
  68.     cout<<u3<<endl;
  69.  
  70.  
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement