public static void FractionTest2() { Console.WriteLine("--------------------TEST 2---------------------"); Console.WriteLine("----------Using Assignment----------"); Fraction f1 = new Fraction() { Numerator = 2, Denominator = 5 }; Fraction f2 = f1; f2.Numerator = 4; // f1 is now equal to 4/5 Console.WriteLine("f1 = " + f1); Console.WriteLine("f2 = " + f2); Console.WriteLine("----------Using Copy Constructor----------"); Fraction f3 = new Fraction(f1); f1.Set(2, 5); f3.Set(4, 5); Console.WriteLine("f1 = " + f1); Console.WriteLine("f3 = " + f3); }
static void FractionTest1() { Console.WriteLine("--------------------TEST 1--------------------"); var f1 = new Fraction { Numerator = 1, Denominator = 3 }; var f2 = new Fraction { Numerator = 3, Denominator = 7 }; var f3 = new Fraction { Numerator = 4, Denominator = 8 }; // Which version do you prefer? var answer = f1.Add(2); Console.WriteLine(answer); answer = f1 + 2; Console.WriteLine(answer); Console.WriteLine(f1 + " + 2 = " + (f1 + 2)); Console.WriteLine(f1 + " + " + f2 + " = " + (f1 + f2)); Console.WriteLine(f2 + " - " + f1 + " = " + (f2 - f1)); Console.WriteLine(f1 + " - " + f2 + " = " + (f1 - f2)); Console.WriteLine(f1 + " * " + f2 + " = " + (f1 * f2)); Console.WriteLine(f1 + " / " + f2 + " = " + (f1 / f2)); Console.WriteLine(f2 + " = " + f2.Simplified); Console.WriteLine(f3 + " = " + f3.Simplified); Console.WriteLine(f1 + "'s reciprocal is " + f1.Reciprocal()); Console.WriteLine(f2 + "'s reciprocal is " + f2.Reciprocal()); Console.WriteLine(f3 + "'s reciprocal is " + f3.Reciprocal()); Console.WriteLine(f1 + " = " + f1.Evaluate()); Console.WriteLine(f2 + " = " + f2.Evaluate()); Console.WriteLine(f3 + " = " + f3.Evaluate()); }
public static Fraction operator /(Fraction frac1, Fraction frac2) { var f = new Fraction { Numerator = frac1.Numerator * frac2.Denominator, Denominator = frac1.Denominator * frac2.Numerator }; return f; }
public static Fraction operator -(Fraction frac1, Fraction frac2) { var f = new Fraction { Numerator = (frac1.Numerator * frac2.Denominator) - (frac2.Numerator * frac1.Denominator), Denominator = frac1.Denominator * frac2.Denominator }; return f.Simplified; }
public static Fraction operator /(Fraction frac, int num) { var f = new Fraction { Numerator = frac.Numerator, Denominator = frac.Denominator * num }; return f; }
public static Fraction operator -(Fraction frac, int num) { var f = new Fraction { Numerator = frac.Numerator - (num * frac.Denominator), Denominator = frac.Denominator }; return f.Simplified; }
public Fraction Add(Fraction frac) { var f = new Fraction { Numerator = (this.Numerator * frac.Denominator) + (frac.Numerator * this.Denominator), Denominator = this.Denominator * frac.Denominator }; return f.Simplified; }
public Fraction Add(int num) { var f = new Fraction { Numerator = this.Numerator + (num * this.Denominator), Denominator = this.Denominator }; return f.Simplified; }
public Fraction Reciprocal() { var f = new Fraction { Numerator = this.Denominator, Denominator = this.Numerator }; return f; }
public Fraction(Fraction f) { this.Numerator = f.Numerator; this.Denominator = f.Denominator; inSimplifestForm = false; }