Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Fraction f, d;
            Fraction rez = new Fraction();

            Console.WriteLine("Введите числитель, знаменатель первой дроби");
            long num1 = long.Parse(Console.ReadLine());
            long den1 = long.Parse(Console.ReadLine());

            try
            {
                f = new Fraction(num1, den1);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
                return;
            }
            Console.WriteLine("Введите числитель, знаменатель второй дроби");
            long num2 = long.Parse(Console.ReadLine());
            long den2 = long.Parse(Console.ReadLine());

            try
            {
                d = new Fraction(num2, den2);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
                return;
            }

            char choice;

            while (true)
            {
                choice = option();
                Console.Clear();
                if (choice != '0')
                {
                    switch (choice)
                    {
                    case '1':
                        rez = f + d;
                        Console.WriteLine("Сумма = {0}", (rez).ToString());
                        break;

                    case '2':
                        rez = f - d;
                        Console.WriteLine("Разность = {0}", (rez).ToString());
                        break;

                    case '3':
                        rez = f * d;
                        Console.WriteLine("Произведение = {0}", (rez).ToString());
                        break;

                    case '4':
                    {
                        try
                        {
                            rez = f / d;
                        }
                        catch (ArgumentException e)
                        {
                            Console.WriteLine(e.Message);
                            break;
                        }
                        Console.WriteLine("Деление = {0:F}", (rez).ToString());
                    }
                    break;

                    case '5':
                        rez = -rez;
                        Console.WriteLine("Унарный минус = {0:F}", (rez).ToString());
                        break;
                    }
                }
                else
                {
                    break;
                }
            }
            Console.WriteLine("Знаменатель первой дроби до изменения равен {0:D}", f.numerator);
            f.numerator = 1;
            Console.WriteLine("Знаменатель первой дроби после изменения на 1 равен {0:D}", f.numerator);
            Console.WriteLine("Десятичная дробь {0:F} ", f.getValue());
        }