示例#1
0
        public Fractions Div(Fractions other)
        {
            long a = Numerator * other.Denominator;
            long b = Denominator * other.Numerator;

            return(new Fractions(a, b));
        }
示例#2
0
        private void btnResult_Click(object sender, EventArgs e)
        {
            Fractions First  = new Fractions(int.Parse(tbNumerator1.Text), int.Parse(tbDenominator1.Text));
            Fractions Second = new Fractions(int.Parse(tbNumerator2.Text), int.Parse(tbDenominator2.Text));
            Fractions Result = new Fractions(0, 0);

            switch (cbJob.SelectedItem)
            {
            case "+":
                Result = First.PlusFractions(Second);
                break;

            case "-":
                Result = First.SubstractFractions(Second);
                break;

            case "*": Result = First.MultiFractions(Second);
                break;

            case "/": Result = First.DividingFractions(Second);
                break;
            }

            tbResultNumerator.Text   = First.GetNumerator;
            tbResultDenominator.Text = First.GetDenominator;
        }
示例#3
0
        public static Fractions Plus(Fractions fract1, Fractions fract2)                                                                                       //метод, в котором за основу берётся класс, как переменная.
        {
            resDenom = NOK(fract1.denom, fract2.denom);                                                                                                        // записываем результат вычисления общего знаменателя
            resNom   = ForNom(NomCoef(fract1.nom, fract1.denom, resDenom) + NomCoef(fract2.nom, fract2.denom, resDenom), resDenom);                            //записываем результат расчёта числителей
            resFull  = ForFull(fract1.full, fract2.full, NomCoef(fract1.nom, fract1.denom, resDenom) + NomCoef(fract2.nom, fract2.denom, resDenom), resDenom); //рез.расч.множителя

            return(new Fractions(ReductionDenom(resNom, resDenom), ReductionNom(resNom, resDenom), resFull));                                                  //Экземпляр класса с заданными параметрами. (можно было сразу с рассчётом на месте каждого аргумента).
        }
示例#4
0
        public static Fractions Divide(Fractions fract1, Fractions fract2)              //объект для деления дробей
        {
            resNom   = ForDivide(fract1.nom, fract1.denom, fract1.full) * fract2.denom; //складываем числитель 1 помноженный на множитель 1 со знаменателем 2
            resDenom = fract1.denom * ForDivide(fract2.nom, fract2.denom, fract2.full); //складываем знаменатель 1  с числителем 2 помноженным на множитель 2
            resNom   = ForNom(resNom, resDenom);
            resFull  = resNom / resDenom;

            return(new Fractions(ReductionDenom(resNom, resDenom), ReductionNom(resNom, resDenom), resFull));
        }
示例#5
0
        public static Fractions Multi(Fractions fract1, Fractions fract2)
        {
            resNom   = (fract1.nom + (fract1.full * fract1.denom)) * (fract2.nom + (fract2.full * fract2.denom)); //записываем результат вычисления числителя
            resDenom = fract1.denom * fract2.denom;                                                               //записываем результат вычисления знаменателя
            resFull  = resNom / resDenom;                                                                         //записываем множитель
            resNom   = ForNom(resNom, resDenom);


            return(new Fractions(ReductionDenom(resNom, resDenom), ReductionNom(resNom, resDenom), resFull));
        }
示例#6
0
        public Fractions DividingFractions(Fractions B)
        {
            Fractions Result;

            this.numerator   *= B.denominator;
            this.denominator *= B.numerator;

            Result = this.GetReductFraction();

            return(Result);
        }
示例#7
0
        public Fractions SubstractFractions(Fractions B)
        {
            Fractions Result;

            this.numerator    = this.numerator * B.denominator - B.numerator * this.denominator;
            this.denominator *= B.denominator;

            Result = this.GetReductFraction();

            return(Result);
        }
        public Fractions divide(Fractions second)
        {
            string    ops    = "Division";
            Fractions answer = new Fractions();

            answer.numerator   = this.numerator * second.denominator;
            answer.denominator = second.numerator * this.denominator;

            answer = this.reduce(answer);
            this.print(answer, ops);
            return(answer);
        }
        public Fractions multiply(Fractions second)
        {
            string    ops    = "Multiplication";
            Fractions answer = new Fractions();

            answer.numerator   = this.numerator * second.numerator;
            answer.denominator = this.denominator * second.denominator;

            answer = this.reduce(answer);
            this.print(answer, ops);
            return(answer);
        }
示例#10
0
        public static Fractions Substraction(Fractions fract1, Fractions fract2)//объект для вычитания дробей
        {
            resDenom = NOK(fract1.denom, fract2.denom);
            resNom   = ForNom(NomCoef(fract1.nom, fract1.denom, resDenom) - NomCoef(fract2.nom, fract2.denom, resDenom), resDenom);
            resFull  = fract1.full - fract2.full;

            if (resFull > 0 && resNom <= 0)
            {
                resNom  += resDenom;
                resFull -= 1;
            }

            return(new Fractions(ReductionDenom(resNom, resDenom), ReductionNom(resNom, resDenom), resFull));
        }
        private Fractions reduce(Fractions x)
        {
            int gcd;

            gcd = GCD(x.numerator, x.denominator);

            x.numerator   = x.numerator / gcd;
            x.denominator = x.denominator / gcd;

            if (x.denominator < 1)
            {
                x.denominator = x.denominator * -1;
                x.numerator   = x.numerator * -1;
            }
            return(x);
        }
示例#12
0
        static void Main(string[] args)
        {
            long   a1, b1, a2, b2;
            string comand;

            Console.WriteLine("Vvedite pervii drob.");
            a1 = Convert.ToInt64(Console.ReadLine());
            b1 = Convert.ToInt64(Console.ReadLine());

            Console.WriteLine("Vvedite vtoroi drob.");
            a2 = Convert.ToInt64(Console.ReadLine());
            b2 = Convert.ToInt64(Console.ReadLine());

            Console.WriteLine("Vvedite komandu: +, -, *, /.");
            comand = Console.ReadLine();

            Fractions first  = new Fractions(a1, b1);
            Fractions second = new Fractions(a2, b2);

            switch (comand)
            {
            case "+":
                Fractions resultAdd = first.Add(second);
                resultAdd.Result();
                resultAdd.Reducing();
                resultAdd.ReducingResult();
                break;

            case "-":
                Fractions resultSub = first.Sub(second);
                resultSub.Result();
                break;

            case "*":
                Fractions resultMulti = first.Multi(second);
                resultMulti.Result();
                break;

            case "/":
                Fractions resultDiv = first.Div(second);
                resultDiv.Result();
                resultDiv.Reducing();
                resultDiv.ReducingResult();
                break;
            }
        }
示例#13
0
 public Fractions Sub(Fractions other)
 {
     if (Denominator == other.Denominator)
     {
         long a = Numerator - other.Numerator;
         long b = Denominator;
         return(new Fractions(a, b));
     }
     else
     {
         long a1 = Numerator * other.Denominator;
         long b1 = Denominator * other.Denominator;
         long a2 = other.Numerator * Denominator;
         long b2 = other.Denominator * Denominator;
         long a  = a1 - a2;
         return(new Fractions(a, b2));
     }
 }
        static void Main(string[] args)
        {
            string    numString;
            string    denomString;
            string    numstring2;
            string    denomString2;
            Fractions secondFrac, firstFrac;
            Fractions answer;
            int       numInt, numInt2, denomInt, denomInt2;

            //input numbers for fractions
            Console.WriteLine("Input first Numerator:");
            numString = Console.ReadLine();
            Console.WriteLine("Input first Denominator:");
            denomString = Console.ReadLine();
            Console.WriteLine("Input second Numerator:");
            numstring2 = Console.ReadLine();
            Console.WriteLine("Input second Denominator:");
            denomString2 = Console.ReadLine();

            //parse the numbers
            numInt  = int.Parse(numString);
            numInt2 = int.Parse(numstring2);

            denomInt  = int.Parse(denomString);
            denomInt2 = int.Parse(denomString2);


            //display fractions
            firstFrac  = new Fractions(numInt, denomInt);
            secondFrac = new Fractions(numInt2, denomInt2);
            answer     = firstFrac.addition(secondFrac);
            answer     = firstFrac.subtract(secondFrac);
            answer     = firstFrac.multiply(secondFrac);
            answer     = firstFrac.divide(secondFrac);

            Console.ReadKey();
        }
示例#15
0
        static void Main(string[] args)
        {
            int nom1   = 0;
            int denom1 = 0;
            int full1  = 0;
            int nom2   = 0;
            int denom2 = 0;
            int full2  = 0;

            Console.WriteLine("Вас приветствует программа для операций с дробями!");
            // do
            //{
            Console.WriteLine("Введите числитель(1), знаменатель(2), множитель(3) первой дроби в заданном порядке:");
            try
            {
                nom1   = Int32.Parse(Console.ReadLine());
                denom1 = Int32.Parse(Console.ReadLine());
                full1  = Int32.Parse(Console.ReadLine());
            }
            catch
            { Console.WriteLine("Введены неверные данные, необходимо вводить целые числа"); }

            Console.WriteLine("Введите числитель(1), знаменатель(2), множитель(3) второй дроби в заданном порядке:");
            try
            {
                nom2   = Int32.Parse(Console.ReadLine());
                denom2 = Int32.Parse(Console.ReadLine());
                full2  = Int32.Parse(Console.ReadLine());
            }
            catch
            { Console.WriteLine("Введены неверные данные, необходимо вводить целые числа"); }
            //  } while ();

            Fractions fract1            = new Fractions(denom1, nom1, full1);//знаменатель, числитель, множитель
            Fractions fract2            = new Fractions(denom2, nom2, full2);
            Fractions fractPlus         = new Fractions(0, 0, 0);
            Fractions fractMulti        = new Fractions(0, 0, 0);
            Fractions fractSubstraction = new Fractions(0, 0, 0);
            Fractions fractDivide       = new Fractions(0, 0, 0);

            Console.WriteLine("Выберите операцию, которую хотите провести с дробями:");
            Console.WriteLine("1 - сложение");
            Console.WriteLine("2 - вычитание");
            Console.WriteLine("3 - умножение");
            Console.WriteLine("4 - деление");

            string choise = Console.ReadLine();

            switch (choise)
            {
            case "1": fractPlus = Fractions.Plus(fract1, fract2);
                Console.WriteLine($"результат сложения дробей: {fractPlus.full}({fractPlus.nom}/{fractPlus.denom})"); break;

            case "2": fractSubstraction = Fractions.Substraction(fract1, fract2);
                Console.WriteLine($"результат вычитания дробей: {fractSubstraction.full}({fractSubstraction.nom}/{fractSubstraction.denom})"); break;

            case "3": fractMulti = Fractions.Multi(fract1, fract2);
                Console.WriteLine($"результат умножения дробей: {fractMulti.full}({fractMulti.nom}/{fractMulti.denom})"); break;

            case "4": fractDivide = Fractions.Divide(fract1, fract2);
                Console.WriteLine($"результат деления дробей: {fractDivide.full}({fractDivide.nom}/{fractDivide.denom})"); break;
            }


            Console.ReadKey();
        }
 private void print(Fractions derp, string operant)
 {
     Console.WriteLine(operant + ": " + derp.numerator + "/" + derp.denominator);
 }