Пример #1
0
        private static void Lecture7DZ2()
        {
            // Домашнее задание
            // - Реализовать неизменяемую структуру - простая дробь(x / y).
            // - Числитель и знаменатель - целые числа. Знаменатель - всегда положительный. Ноль - 0 / x.
            // - Реализовать операции сложения, вычитания, умножения, деления.
            // - Реализовать интерфейс IComparable.
            // - Создать массив из N случайных дробей, отсортировать по возрастанию.
            // - Найти сумму всех дробей.

            SimpleFraction fraction1 = new SimpleFraction(2, 3);
            SimpleFraction fraction2 = new SimpleFraction(1, 5);
            SimpleFraction fraction3 = new SimpleFraction(3, 7);
            SimpleFraction fraction4 = new SimpleFraction(1, 2);



            Console.WriteLine($"Операция вычитания: {fraction1} - {fraction3} =  {fraction1 - fraction3}");
            Console.WriteLine($"Операция деления: {fraction3} / {fraction4} = {fraction3 / fraction4}");
            Console.WriteLine($"Операция сложения: {fraction2} + {fraction4} = {fraction2 + fraction4}");
            Console.WriteLine($"Операция умножения: {fraction2} * {fraction4} =  {fraction2 * fraction4}");
            Console.WriteLine();

            // Ноль - 0 / x.
            Console.WriteLine($"Ноль = {SimpleFraction.Zero}");

            List <SimpleFraction> fractions = new List <SimpleFraction> {
                fraction1, fraction2, fraction3, fraction4
            };

            fractions.Sort();

            SimpleFraction sumSimpleFraction = new SimpleFraction();

            foreach (SimpleFraction fraction in fractions)
            {
                Console.Write($"{fraction} \t");
                sumSimpleFraction += fraction;
            }

            Console.WriteLine();
            Console.WriteLine($"Сумма всех дробей = {sumSimpleFraction}");
            Console.ReadKey();
        }
Пример #2
0
        public int CompareTo(object obj)
        {
            SimpleFraction fraction  = (SimpleFraction)obj;
            var            fraction1 = ReductionDenominator(this, fraction.Denominator);
            var            fraction2 = ReductionDenominator(fraction, this.Denominator);


            if (fraction1.Numerator < fraction2.Numerator)
            {
                return(-1);
            }

            if (fraction1.Numerator > fraction2.Numerator)
            {
                return(1);
            }

            return(0);
        }
Пример #3
0
        public static SimpleFraction operator /(SimpleFraction leftFraction, SimpleFraction rightFraction)
        {
            SimpleFraction resultFraction = new SimpleFraction((int)(leftFraction.Numerator * rightFraction.Denominator), (uint)(leftFraction.Denominator * rightFraction.Numerator));

            return(resultFraction);
        }