//Reducing the Fraction to its Lowest Terms
        private void ReduceToLowestTerms()
        {
            int greatestCommonDivisor = RationalStruct.GCDRecursiveS(numerator, Denomerator);

            numerator   /= greatestCommonDivisor;
            Denomerator /= greatestCommonDivisor;
        }
예제 #2
0
        static void Swap(ref RationalStruct rs1, ref RationalStruct rs2)
        {
            RationalStruct temp = rs1;

            rs1 = rs2;
            rs2 = temp;
        }
        public override bool Equals(object obj)
        {
            // Equals should not throw exception even when obj is null or of other type
            if (!(obj is RationalStruct))
            {
                return(false);
            }

            RationalStruct rs = (RationalStruct)obj;

            return(Value == rs.Value);
        }
예제 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("\n" + "--- RationalStruct ---");

            RationalStruct rs  = new RationalStruct(5, 8);
            RationalStruct rs1 = new RationalStruct(10, 8);
            RationalStruct rs2 = new RationalStruct(4, 6);
            RationalStruct rs3 = rs2;

            Console.WriteLine("Rational - rs: " + rs + " and Quotient is: " + rs.Value);
            Console.WriteLine("Rational - rs1: " + rs1 + " and Quotient is: " + rs1.Value);
            Console.WriteLine("Rational - rs2: " + rs2 + " and Quotient is: " + rs2.Value);
            Console.WriteLine("Rational - rs3: " + rs3 + " and Quotient is: " + rs3.Value);

            Console.WriteLine("\n" + "--- CompareTo ---");
            Console.WriteLine(rs.Value + " < " + rs1.Value + " is " + (rs.CompareTo(rs1) < 0 ? "true" : "false"));

            Console.WriteLine("\n" + "--- Testing for equality ---");
            // Testing  for equality (operator == is not implicitly defined for structs, and Equals for value types implicitly compares their values)
            Console.WriteLine(rs + " " + ((rs.Equals(rs1)) ? "equals" : "doesn't equal") + " " + rs1);
            Console.WriteLine(rs + " " + ((rs.Equals(rs2)) ? "equals" : "doesn't equal") + " " + rs2);
            Console.WriteLine(rs + " " + ((rs.Equals(rs3)) ? "equals" : "doesn't equal") + " " + rs3);

            Console.WriteLine("\n" + "--- RationalClass ---");

            RationalClass rn  = new RationalClass(9, 4);
            RationalClass rn1 = new RationalClass(10, 6);
            RationalClass rn2 = rn1;


            Console.WriteLine("Rational - rn: " + rn + " and Quotient is: " + rn.Value);
            Console.WriteLine("Rational - rn1: " + rn1 + " and Quotient is: " + rn1.Value);
            Console.WriteLine("Rational - rn2: " + rn2 + " and Quotient is: " + rn2.Value);


            Console.WriteLine("\n" + "--- CompareTo ---");
            Console.WriteLine(rn.Value + " < " + rn1.Value + " is " + (rn.CompareTo(rn1) < 0 ? "true" : "false"));

            Console.WriteLine("\n" + "--- Testing for equality ---");
            // Testing points for equality
            Console.WriteLine(rn + " " + ((rn == rn1) ? "==" : "<>") + " " + rn1);
            Console.WriteLine(rn + " " + ((rn.Equals(rn2)) ? "equals" : "doesn't equal") + " " + rn2);
        }