Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #5
0
        /// <summary>
        /// Возводит дробь в степень N, по умолчанию в квадрат
        /// </summary>
        /// <param name="n">Степень</param>
        /// <returns></returns>
        public Drob StepN(int n = 2)
        {
            Drob temp = new Drob(this);

            for (int i = 1; i < n; i++)
            {
                temp.delimoe *= delimoe;
                temp.delitel *= delitel;
            }

            return(temp);
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            #region Инициализация дробей для демонстрации возможностей
            Drob drobRes = new Drob();

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

            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Урощенная (1я дробь + 2я) = {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Урощенная (1я дробь - 2я) = {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Урощенная (1я дробь * 2я) = {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Урощенная (1я дробь / 2я) = {drobRes.delimoe} / {drobRes.delitel}\n");

            drob1.Upr();
            Console.WriteLine($"\nУпрощенная 1я дробь: {drob1.delimoe} / {drob1.delitel}\n");
            Console.WriteLine($"Общий множитель упрощенной 1й дроби = {drob1.obmnog}");

            drobRes = drob1.StepN();
            Console.WriteLine($"1я дробь в квадрате = {drobRes.delimoe} / {drobRes.delitel}\n");

            Console.WriteLine($"Частное дроби (Double) = {drobRes.Result()}\n");

            #endregion

            Console.ReadLine();
        }
Beispiel #7
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);
        }
Beispiel #8
0
        /// <summary>
        /// Упрощает дробь. А также, возвращает упрощенную дробь
        /// Например 4/6 станет 2/3.
        /// </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);
        }
Beispiel #9
0
 /// <summary>
 /// Создает объект с присвоением параметров другого экземпляра
 /// </summary>
 /// <param name="Дробь"></param>
 public Drob(Drob drob)
 {
     delimoe = drob.delimoe;
     delitel = drob.delitel;
 }