コード例 #1
0
        /// <summary>
        /// Умножает дроби и упрощает результат
        /// </summary>
        /// <param name="drob"></param>
        /// <returns>Возвращает упрощенный результат умножение</returns>
        public Drob UmnogUpr(Drob drob)
        {
            Drob res = new Drob(drob);

            res = Umnog(drob);
            res.Upr();
            return(res);
        }
コード例 #2
0
        /// <summary>
        /// Делит дроби и упрощает результат
        /// </summary>
        /// <param name="drob"></param>
        /// <returns>Возвращает упрощенный результат деления</returns>
        public Drob DeliUpr(Drob drob)
        {
            Drob res = new Drob(drob);

            res = Deli(drob);
            res.Upr();
            return(res);
        }
コード例 #3
0
        /// <summary>
        /// Вычитает дроби и упрощает результат
        /// </summary>
        /// <param name="drob"></param>
        /// <returns>Возвращает упрощенный результат вычитания</returns>
        public Drob MinusUpr(Drob drob)
        {
            Drob res = new Drob(drob);

            res = Minus(drob);
            res.Upr();
            return(res);
        }
コード例 #4
0
        /// <summary>
        /// Делит дроби
        /// </summary>
        /// <param name="drob"></param>
        /// <returns>Возвращает результат деления</returns>
        public Drob Deli(Drob drob)
        {
            Drob temp1 = new Drob(this);
            Drob temp2 = new Drob(drob);

            temp2.delimoe *= temp1.delitel;
            temp2.delitel *= temp1.delimoe;

            return(temp2);
        }
コード例 #5
0
        static void Main(string[] args)
        {
            #region Инициализация дробей
            Drob drobRes = new Drob();

            Console.WriteLine("Введите числитель и знаменатель 1ой дроби: ");

            Drob drob1 = new Drob(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
            Console.WriteLine($"\nПервая дробь: {drob1.delimoe} / {drob1.delitel}\n");

            Console.WriteLine("Введите числитель и знаменатель 2ой дроби: ");

            Drob drob2 = new Drob(int.Parse(Console.ReadLine()), int.Parse(Console.ReadLine()));
            Console.WriteLine($"\nВторая дробь: {drob2.delimoe} / {drob2.delitel}\n");
            #endregion

            #region Демонстрация

            drobRes = drob1.Plus(drob2);
            Console.WriteLine($"\n1ая дробь + 2ая дробь = {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.PlusUpr(drob2);
            Console.WriteLine($"\nУрощенный вид = {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.Minus(drob2);
            Console.WriteLine($"\n1ая дробь - 2ая = {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.MinusUpr(drob2);
            Console.WriteLine($"\nУрощенный вид: {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.Umnog(drob2);
            Console.WriteLine($"\n1ая дробь * 2ая дробь = {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.UmnogUpr(drob2);
            Console.WriteLine($"\nУрощенный вид: {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.Deli(drob2);
            Console.WriteLine($"\n1ая дробь / 2ая дробь = {drobRes.delimoe} / {drobRes.delitel}\n");

            drobRes = drob1.DeliUpr(drob2);
            Console.WriteLine($"\nУрощенный вид: {drobRes.delimoe} / {drobRes.delitel}\n");

            #endregion

            Console.ReadLine();
        }
コード例 #6
0
        /// <summary>
        /// Вычитает дроби
        /// </summary>
        /// <param name="drob"></param>
        /// <returns>Возвращает результат вычитания</returns>
        public Drob Minus(Drob drob)
        {
            Drob temp1 = new Drob(this);
            Drob temp2 = new Drob(drob);

            if (temp1.delitel == temp2.delitel)
            {
                temp2.delimoe -= temp1.delimoe;
            }
            else
            {
                temp1.delimoe *= temp2.delitel;
                temp2.delimoe *= temp1.delitel;
                temp2.delitel *= temp1.delitel;
                temp2.delimoe -= temp1.delimoe;
            }
            return(temp2);
        }
コード例 #7
0
        /// <summary>
        /// Упрощает дробь и возвращает ее упрощенный вид
        /// </summary>
        public Drob Upr()
        {
            if ((delimoe < 0) && (delitel < 0))
            {
                delimoe *= -1;
                delitel *= -1;
            }
            int  min  = Math.Abs(delimoe) <= Math.Abs(delitel) ? delimoe : delitel;
            bool flag = true;

            if ((delimoe != 0) && (Math.Abs(delimoe) != 1))
            {
                while (flag)
                {
                    for (int i = 2; i <= Math.Abs(min); i++)
                    {
                        if ((delimoe % i == 0) && (delitel % i == 0))
                        {
                            obmnog  *= i;
                            delimoe /= i;
                            delitel /= i;
                            min      = delimoe <= delitel ? delimoe : delitel;
                            if (Math.Abs(min) == 1)
                            {
                                flag = false;
                            }
                            break;
                        }
                        else if (i == Math.Abs(min))
                        {
                            flag = false;
                        }
                    }
                }
            }
            Drob drob = new Drob(delimoe, delitel);

            return(drob);
        }
コード例 #8
0
 /// <summary>
 /// Создает объект с присвоением параметров другого экземпляра
 /// </summary>
 /// <param name="Дробь"></param>
 public Drob(Drob drob)
 {
     delimoe = drob.delimoe;
     delitel = drob.delitel;
 }