示例#1
0
        /// <summary>
        /// Произведение
        /// </summary>
        public TFrac Multiplication(TFrac a, TFrac b)
        {
            TFrac otv = a.Copy();

            otv.Denominator = a.Denominator * b.Denominator;
            otv.Numerator   = a.Numerator * b.Numerator;
            return(otv);
        }
示例#2
0
        /// <summary>
        /// Деление
        /// </summary>
        public TFrac Division(TFrac a, TFrac b)
        {
            TFrac otv = a.Copy();

            otv.Denominator = a.Denominator * b.Numerator;
            otv.Numerator   = a.Numerator * b.Denominator;
            return(Norm(otv));
        }
示例#3
0
        /// <summary>
        /// Сумма
        /// </summary>
        public TFrac Add(TFrac b)
        {
            TFrac otv = b.Copy();

            if (this.Denominator == b.Denominator)
            {
                otv.denominator = this.Denominator;
                otv.numerator   = this.Numerator + b.Numerator;
            }
            else
            {
                int nok = NOK(Convert.ToInt32(this.Denominator), Convert.ToInt32(b.Denominator));
                otv.denominator = nok;
                otv.numerator   = this.Numerator * (nok / this.Denominator) + b.Numerator * (nok / b.Denominator);
            }
            return(Norm(otv));
        }
示例#4
0
        /// <summary>
        /// Разность
        /// </summary>
        public TFrac Difference(TFrac A, TFrac B)
        {
            //if (A.Numerator == 0) return Multiplication(Norm(B), new TFrac(-1, 1));
            if (B.Numerator == 0)
            {
                return(Norm(A));
            }
            TFrac otv = A.Copy();
            TFrac a = Norm(A), b = Norm(B);

            if (a.Denominator == b.Denominator)
            {
                otv.Denominator = a.Denominator;
                otv.Numerator   = a.Numerator - b.Numerator;
            }
            else
            {
                int nok = NOK(Convert.ToInt32(a.Denominator), Convert.ToInt32(b.Denominator));
                otv.Denominator = nok;
                otv.Numerator   = a.Numerator * (nok / a.Denominator) - b.Numerator * (nok / b.Denominator);
            }
            return(Norm(otv));
        }