Esempio n. 1
0
        static void PerformOperationAndShowResult(BigRational x, BigRational y, RationalOperator op)
        {
            switch (op)
            {
            case RationalOperator.Add:
                Console.WriteLine("{0} + {1} = {2}", x, y, x + y);
                break;

            case RationalOperator.Divide:
                Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
                break;

            case RationalOperator.LeastCommonDenominator:
                Console.WriteLine("LeastCommonDenominator({0}, {1}) = {2}", x, y, BigRational.LeastCommonDenominator(x, y));
                break;

            case RationalOperator.Multiply:
                Console.WriteLine("{0} * {1} = {2}", x, y, x * y);
                break;

            case RationalOperator.Subtract:
                Console.WriteLine("{0} - {1} = {2}", x, y, x - y);
                break;

            default:
                throw new InvalidOperationException();
            }
        }
Esempio n. 2
0
        // simple demo which reads in two rationals and an operator then prints the result
        static void Main(string[] args)
        {
            ConsoleProlog();
            while (true)
            {
                BigInteger  numA      = GetNumber(RationalField.FirstNumerator);
                BigInteger  numB      = GetNumber(RationalField.FirstDenominator);
                BigInteger  numC      = GetNumber(RationalField.SecondNumerator);
                BigInteger  numD      = GetNumber(RationalField.SecondDenominator);
                BigRational rational1 = new BigRational(numA, numB);
                BigRational rational2 = new BigRational(numC, numD);

                RationalOperator op = GetOperator();
                PerformOperationAndShowResult(rational1, rational2, op);
            }
        }