// Takes two fractions, adds them and returns the results public Fraction.Fraction Addition(Fraction.Fraction first, Fraction.Fraction second) { Fraction.Fraction results = new Fraction.Fraction(); // check for errors if (!IsNoneZeroDenominator(first.GetDenominator()) || !IsNoneZeroDenominator(second.GetDenominator())) { return(results); } // if not a common denominator do the thing if (first.GetDenominator() != second.GetDenominator()) { int firstMultiple = first.GetDenominator(); first.SetDenominator(first.GetDenominator() * second.GetDenominator()); first.SetNumerator(first.GetNumerator() * second.GetDenominator()); second.SetDenominator(firstMultiple * second.GetDenominator()); second.SetNumerator(firstMultiple * second.GetNumerator()); } // Do the math results.SetNumerator(first.GetNumerator() + second.GetNumerator()); results.SetDenominator(first.GetDenominator()); return(results); }
// Reduce the fraction down to its lowest terms before my teacher gets mad at me public Fraction.Fraction ReducedFraction(Fraction.Fraction fractionToReduce) { // Protection against 0 if (fractionToReduce.GetDenominator() == 0) { return(fractionToReduce); } int gcd = GreatestCommonDenominator(fractionToReduce.GetNumerator(), fractionToReduce.GetDenominator()); if (gcd != 0) { fractionToReduce.SetNumerator(fractionToReduce.GetNumerator() / gcd); fractionToReduce.SetDenominator(fractionToReduce.GetDenominator() / gcd); } if (gcd < 0) { fractionToReduce.SetNumerator(fractionToReduce.GetNumerator() * -1); fractionToReduce.SetDenominator(fractionToReduce.GetDenominator() * -1); } return(fractionToReduce); }
// Takes two fractions, divides the first with the second and returns the results public Fraction.Fraction Division(Fraction.Fraction first, Fraction.Fraction second) { Fraction.Fraction results = new Fraction.Fraction(); // check for errors if (!IsNoneZeroDenominator(first.GetDenominator()) || !IsNoneZeroDenominator(second.GetDenominator())) { return(results); } // Do the math results.SetNumerator(first.GetNumerator() * second.GetDenominator()); results.SetDenominator(first.GetDenominator() * second.GetNumerator()); // Return the reduced version of the results return(results); }