예제 #1
0
        //сложение дробей с последующим сокращением
        public static Drob operator +(Drob d1, Drob d2)
        {
            Drob d = new Drob();

            d.chisl = d1.chisl * d2.znam + d2.chisl * d1.znam;
            d.znam  = d1.znam * d2.znam;
            DecDrob(ref d);
            return(d);
        }
예제 #2
0
        //вычисление выражения ао методу горнера
        public static Drob Calculated(Drob[] mas)
        {
            Drob res = new Drob();

            res.chisl = mas[7].chisl;
            res.znam  = mas[7].znam;
            for (int i = 6; i >= 0; i--)
            {
                res = res * mas[8] + mas[i];
            }
            return(res);
        }
예제 #3
0
        //1 итерация программы
        public static void Actions()
        {
            //ввод значений
            Console.WriteLine("Чтобы вычислить многочлен введите 9 дробей (n - числитель, d - знаменатель)");
            Drob[] mas = new Drob[9]; // 8 дробей n/d и дробь a/b
            for (int i = 0; i < 8; i++)
            {
                mas[i] = new Drob(InputIntNumber("\nВведите n" + i), InputIntNumber("Введите d" + i, "Нужно целое ненулевое значение", znam: true));
            }
            mas[8] = new Drob(InputIntNumber("\nВведите a"), InputIntNumber("Введите b", "Нужно целое ненулевое значение", znam: true));

            //сокращение дробей
            for (int i = 0; i < 9; i++)
            {
                Drob.DecDrob(ref mas[i]);
            }

            //вычисление выражения и вывод ответа
            Console.WriteLine("\nРезультат вычисления: " + Drob.Calculated(mas).ToString());
        }
예제 #4
0
 //сокращение дроби
 public static void DecDrob(ref Drob dr)
 {
     if (dr.chisl != 0)
     {
         bool ok = true;
         while (ok)
         {
             ok = false;
             for (int i = 2; i <= dr.chisl; i++)
             {
                 if (dr.chisl % i == 0 && dr.znam % i == 0)
                 {
                     dr.chisl = dr.chisl / i;
                     dr.znam  = dr.znam / i;
                     ok       = true;
                     break;
                 }
             }
         }
     }
 }