skeleton for lab1

Dependencies:   AvailableMemory mbed-rtos mbed

Fork of helloaabbc by 32314 mbed

RationalNum.h

Committer:
mbed36372
Date:
2014-04-04
Revision:
1:55e99f6e2aa5
Parent:
0:1c8f2727e9f5

File content as of revision 1:55e99f6e2aa5:

#ifndef _RATIONALNUM_H
#define _RATIONALNUM_H

#include "mbed.h"

int gcd(int x, int y);
int lcm(int x, int y);

class RationalNum{
  friend RationalNum operator + (RationalNum lhs, RationalNum rhs);
  friend RationalNum operator - (RationalNum lhs, RationalNum rhs);
  friend RationalNum operator * (RationalNum lhs, RationalNum rhs);
  friend RationalNum operator / (RationalNum lhs, RationalNum rhs);
  friend bool operator == (RationalNum lhs, RationalNum rhs);
  friend bool operator != (RationalNum lhs, RationalNum rhs);
  friend bool operator >= (RationalNum lhs, RationalNum rhs);
  friend bool operator > (RationalNum lhs, RationalNum rhs);
  friend bool operator <= (RationalNum lhs, RationalNum rhs);
  friend bool operator < (RationalNum lhs, RationalNum rhs);
private:
  int numerator;
  /*non-zero denominator*/
  int denominator;
public:
  RationalNum():numerator(0),denominator(1){}
  RationalNum(int n, int d):numerator(n),denominator(d){normalize();}
  RationalNum(int k):numerator(k),denominator(1){}
  RationalNum(const RationalNum &orig):numerator(orig.numerator),denominator(orig.denominator){normalize();}
  RationalNum& operator = (const RationalNum &rhs){numerator=rhs.numerator;denominator=rhs.denominator;return *this;}
  void print()const{printf("%d\\/%d", numerator, denominator);}
  int getNumerator()const{return numerator;}
  int getDenominator()const{return denominator;}
  void normalize();
};

#endif