Esempio n. 1
0
                public static Drob DelenDrob(Drob a, Drob b)
                {
                    int  x = a.X * b.Y;
                    int  y = a.Y * b.X;
                    Drob c = new Drob(x, y);

                    return(c);
                }
Esempio n. 2
0
                public static Drob MultiDrob(Drob a, Drob b)
                {
                    int x = a.X * b.X;
                    int y = a.Y * b.Y;

                    Drob c = new Drob(x, y);

                    return(c);
                }
Esempio n. 3
0
            /*
             * 3. *Описать класс дробей - рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть методы сложения, вычитания, умножения и деления дробей. Написать программу, демонстрирующую все разработанные элементы класса. Достаточно решить 2 задачи. Все программы сделать в одном решении.
             *
             ** Добавить проверку, чтобы знаменатель не равнялся 0. Выбрасывать исключение
             **ArgumentException("Знаменатель не может быть равен 0");
             **Добавить упрощение дробей.
             */
            static void DZ3_3()
            {
                Drob Dr1     = new Drob(1, 3);
                Drob Dr2     = new Drob(4, 6);
                Drob DrSum   = Drob.SummDrob(Dr1, Dr2);
                Drob DrMult  = Drob.MultiDrob(Dr1, Dr2);
                Drob DrRazn  = Drob.RaznDrob(Dr1, Dr2);
                Drob DrDelen = Drob.DelenDrob(Dr1, Dr2);


                Console.WriteLine($"Имеются дроби {Dr1.X}/{Dr1.Y} и {Dr2.X}/{Dr2.Y} \n сумма их равна {DrSum.X}/{DrSum.Y} \n произведение их равно {DrMult.X}/{DrMult.Y} \n разность их равна { DrRazn.X}/{ DrRazn.Y}, \n деление их равно { DrDelen.X}/{ DrDelen.Y}.");
            }
Esempio n. 4
0
                public static Drob RaznDrob(Drob a, Drob b)
                {
                    int x;
                    int y;

                    if (a.Y == b.Y)
                    {
                        x = a.X - b.X;
                        y = a.Y;
                    }
                    else if (a.Y > b.Y)
                    {
                        if (DelBezOst(a.Y, b.Y) == true)
                        {
                            y = a.Y;
                            x = a.X - b.X * Kratnost(a.Y, b.Y);
                        }
                        else
                        {
                            y = a.Y * b.Y;
                            x = a.X * b.Y - b.X * a.Y;
                        }
                    }
                    else
                    {
                        if (DelBezOst(b.Y, a.Y) == true)
                        {
                            y = b.Y;
                            x = a.X * Kratnost(b.Y, a.Y) - b.X;
                        }
                        else
                        {
                            y = a.Y * b.Y;
                            x = a.X * b.Y - b.X * a.Y;
                        }
                    }

                    Drob c = new Drob(x, y);

                    return(c);
                }
Esempio n. 5
0
        public void Class_Drob()
        {
            //конструкторы
            Drob d1 = new Drob();

            Assert.IsTrue(d1.chisl == d1.znam && d1.znam == 1);

            d1 = new Drob(1, 2);
            Assert.IsNotNull(d1);

            //сокращение дроби
            d1.chisl = 0;
            d1.znam  = 5;
            Drob.DecDrob(ref d1);
            Assert.IsTrue(d1.chisl == 0 && d1.znam == 5);

            d1.chisl = 50;
            d1.znam  = 5;
            Drob.DecDrob(ref d1);
            Assert.IsTrue(d1.chisl == 10 && d1.znam == 1);

            d1.chisl = 1;
            d1.znam  = 5;
            Drob.DecDrob(ref d1);
            Assert.IsTrue(d1.chisl == 1 && d1.znam == 5);

            //умножение дробей
            Drob d2 = new Drob(2, 10);

            d1 = d1 * d2;
            Assert.IsTrue(d1.chisl == 1 && d1.znam == 25);

            //сложение дробей
            d1 = d1 + d2;
            Assert.IsTrue(d1.chisl == 6 && d1.znam == 25);

            //приведение к строке
            string s = d1.ToString();

            Assert.IsTrue(s == d1.chisl + "/" + d1.znam);

            d1.chisl = 10;
            d1.znam  = 2;
            s        = d1.ToString();
            Assert.IsTrue(s == (d1.chisl / d1.znam).ToString());

            //вычисление выражения в задании
            Drob[] mas = new Drob[9];
            mas[0] = new Drob(1, 3);
            mas[1] = new Drob(1, 3);
            mas[2] = new Drob(1, 3);
            mas[3] = new Drob(1, 3);
            mas[4] = new Drob(1, 3);
            mas[5] = new Drob(1, 3);
            mas[6] = new Drob(1, 3);
            mas[7] = new Drob(1, 3);
            mas[8] = new Drob(1, 2);
            Drob d = Drob.Calculated(mas);

            Assert.IsTrue(d.chisl == 85 && d.znam == 128);
        }