示例#1
0
        static void Swap(ref RationalClass rn1, ref RationalClass rn2)
        {
            RationalClass temp = rn1;

            rn1 = rn2;
            rn2 = temp;
        }
        //Reducing the Fraction to its Lowest Terms
        private void ReduceToLowestTermsC()
        {
            int greatestCommonDivisor = RationalClass.GCDRecursiveC(numerator, Denomerator);

            numerator   /= greatestCommonDivisor;
            Denomerator /= greatestCommonDivisor;
        }
        public override bool Equals(object obj)
        {
            // Equals should not throw exception even when obj is null or of other type
            RationalClass rc = obj as RationalClass;

            if (rc == null)
            {
                return(false);
            }

            return(Value == rc.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);
        }
 public RationalClass(RationalClass rn) : this(rn.Numerator, rn.Denomerator)
 {
 }