Advertisement
Orleon

Untitled

Jan 8th, 2021
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.97 KB | None | 0 0
  1. class Rational {
  2. private:
  3.     int numerator;
  4.     int denominator;
  5. public:
  6.     Rational() : numerator(0), denominator(1) {};
  7.  
  8.     Rational(int numerator_value, int denominator_value) {
  9.         if(numerator_value*denominator_value > 0){
  10.             numerator_value = abs(numerator_value);
  11.         }
  12.         else{
  13.             numerator_value = -1*abs(numerator_value);
  14.         }
  15.         denominator_value = abs(denominator_value);
  16.  
  17.         if (numerator_value == 0){
  18.             numerator = 0;
  19.             denominator = 1;
  20.         }
  21.         else{
  22.             int gcd_value = gcd(numerator_value, denominator_value);
  23.             numerator = numerator_value/gcd_value;
  24.             denominator = denominator_value/gcd_value;
  25.         };
  26.     }
  27.  
  28.     Rational operator+( const Rational& rhs){
  29.         int new_numerator = 0;
  30.         int new_denominator = denominator;
  31.         if(denominator != rhs.Denominator()) {
  32.             new_numerator = numerator * rhs.Denominator() + rhs.Numerator() * denominator;
  33.             new_denominator = rhs.Denominator() * denominator;
  34.         }
  35.         else {
  36.             new_numerator = numerator + rhs.Numerator();
  37.         }
  38.         return Rational(new_numerator, new_denominator);
  39.     }
  40.  
  41.     Rational operator-( const Rational& rhs) const{
  42.         int new_numerator = 0;
  43.         int new_denominator = denominator;
  44.         if(denominator != rhs.Denominator()) {
  45.             new_numerator = numerator * rhs.Denominator() - rhs.Numerator() * denominator;
  46.             new_denominator = rhs.Denominator() * denominator;
  47.         }
  48.         else {
  49.             new_numerator = numerator + rhs.Numerator();
  50.         }
  51.         return Rational(new_numerator, new_denominator);
  52.     }
  53.  
  54.     bool operator==( const Rational& rhs){
  55.         return (numerator == rhs.Numerator() && denominator == rhs.Denominator());
  56.     }
  57.  
  58.  
  59.     int Numerator() const{
  60.         return numerator;
  61.     }
  62.     int Denominator() const{
  63.         return denominator;
  64.     }
  65. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement