36372 mbed / Mbed 2 deprecated SP14P1_skeleton

Dependencies:   AvailableMemory mbed-rtos mbed

Fork of helloaabbc by 32314 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RationalNum.h Source File

RationalNum.h

00001 #ifndef _RATIONALNUM_H
00002 #define _RATIONALNUM_H
00003 
00004 #include "mbed.h"
00005 
00006 int gcd(int x, int y);
00007 int lcm(int x, int y);
00008 
00009 class RationalNum{
00010   friend RationalNum operator + (RationalNum lhs, RationalNum rhs);
00011   friend RationalNum operator - (RationalNum lhs, RationalNum rhs);
00012   friend RationalNum operator * (RationalNum lhs, RationalNum rhs);
00013   friend RationalNum operator / (RationalNum lhs, RationalNum rhs);
00014   friend bool operator == (RationalNum lhs, RationalNum rhs);
00015   friend bool operator != (RationalNum lhs, RationalNum rhs);
00016   friend bool operator >= (RationalNum lhs, RationalNum rhs);
00017   friend bool operator > (RationalNum lhs, RationalNum rhs);
00018   friend bool operator <= (RationalNum lhs, RationalNum rhs);
00019   friend bool operator < (RationalNum lhs, RationalNum rhs);
00020 private:
00021   int numerator;
00022   /*non-zero denominator*/
00023   int denominator;
00024 public:
00025   RationalNum():numerator(0),denominator(1){}
00026   RationalNum(int n, int d):numerator(n),denominator(d){normalize();}
00027   RationalNum(int k):numerator(k),denominator(1){}
00028   RationalNum(const RationalNum &orig):numerator(orig.numerator),denominator(orig.denominator){normalize();}
00029   RationalNum& operator = (const RationalNum &rhs){numerator=rhs.numerator;denominator=rhs.denominator;return *this;}
00030   void print()const{printf("%d\\/%d", numerator, denominator);}
00031   int getNumerator()const{return numerator;}
00032   int getDenominator()const{return denominator;}
00033   void normalize();
00034 };
00035 
00036 #endif