Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "fraction.h"
- #include <iostream>
- using namespace std;
- fraction fraction::reducedForm()
- {
- int num1, denom1, gcd;
- bool fully_reduced = false;
- fraction reducedFrac;
- num1 = numerator;
- denom1 = denominator;
- while (fully_reduced == false)
- {
- gcd = get_gcd(num1, denom1);
- if (gcd == 1) {
- break;
- }
- else {
- num1 = num1 / gcd;
- denom1 = denom1 / gcd;
- }
- }
- return reducedFrac;
- }
- int fraction::get_gcd(int num1, int num2)
- {
- int gcd, remainder;
- while (num2 != 0)
- {
- remainder = num1 % num2;
- num1 = num2;
- num2 = remainder;
- }
- gcd = num1;
- return gcd;
- }
- bool fraction::isGreaterThan(fraction otherFraction) const
- {
- fraction f1;
- fraction f2;
- fraction result;
- f1.numerator = numerator * otherFraction.denominator;
- f1.denominator = denominator * otherFraction.denominator;
- f2.numerator = otherFraction.numerator * denominator;
- f2.denominator = otherFraction.denominator * denominator;
- if (f1.numerator > f2.numerator)
- return true;
- else
- return false;
- }
- bool fraction::isEqualTo(fraction otherFraction) const
- {
- fraction f1;
- fraction f2;
- fraction result;
- f1.numerator = numerator * otherFraction.denominator;
- f1.denominator = denominator * otherFraction.denominator;
- f2.numerator = otherFraction.numerator * denominator;
- f2.denominator = otherFraction.denominator * denominator;
- if (f1.numerator == f2.numerator)
- return true;
- else
- return false;
- }
- fraction fraction::AddedTo(fraction otherFraction) const
- {
- fraction f1;
- fraction f2;
- fraction result;
- f1.numerator = numerator * otherFraction.denominator;
- f1.denominator = denominator * otherFraction.denominator;
- f2.numerator = otherFraction.numerator * denominator;
- f2.denominator = otherFraction.denominator * denominator;
- result.numerator = f1.numerator + f2.numerator;
- result.denominator = f1.denominator;
- return result.reducedForm();
- }
- fraction fraction::Subtract(fraction otherFraction) const
- {
- fraction f1;
- fraction f2;
- fraction result;
- f1.numerator = numerator * otherFraction.denominator;
- f1.denominator = denominator * otherFraction.denominator;
- f2.numerator = otherFraction.numerator * denominator;
- f2.denominator = otherFraction.denominator * denominator;
- result.numerator = f1.numerator - f2.numerator;
- result.denominator = f1.denominator;
- return result.reducedForm();
- }
- fraction fraction::MultipliedBy(fraction otherFraction) const
- {
- fraction result;
- result.numerator = numerator * otherFraction.numerator;
- result.denominator = denominator * otherFraction.denominator;
- return result.reducedForm();
- }
- fraction fraction::DividedBy(fraction otherFraction) const
- {
- fraction result;
- result.numerator = numerator * otherFraction.denominator;
- result.denominator = denominator * otherFraction.numerator;
- return result.reducedForm();
- }
- void fraction::print() const
- {
- cout << numerator << "/" << denominator;
- }
- fraction::fraction(int num, int denom)
- {
- numerator = num;
- denominator = denom;
- }
- fraction::fraction()
- {
- numerator = 0;
- denominator = 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement