Рац. числа - 3 част

 avatar
unknown
csharp
2 years ago
1.9 kB
2
Indexable
using System;

namespace ConsoleApp19
{
    class Rational
    {
        int num;
        int den;
        public Rational (Rational r)
        {
            this.num = r.num;
            this.den = r.den; 
        }
        public Rational(int n, int d)
        {
            this.num = n;
            this.den = d;
            normalize();
        }
         public double getDec()
        {
            return (double)this.num / this.den;
        }
        public string print()
        {
            return string.Format("{0}/{1}", this.num, this.den);
        }
        public void multi(Rational r)
        {
            this.num *= r.num;
            this.den *= r.den;
            normalize();
        }
        public void dev(Rational r)
        {
            this.num *= r.den;
            this.den *= r.num;
            normalize();
        }
        public void add(Rational r)
        {
            this.num = (this.num * r.den) + (r.num * this.den);
            this.den *= r.den;
            normalize();
        }
        public void minus(Rational r)
        {
            this.num = (this.num * r.den) - (r.num * this.den);
            this.den *= r.den;
            normalize();
        }
        void normalize()
        {
            int a = Math.Abs(this.num);
            int b = Math.Abs(this.den);
            while (a != b)
            {
                if (a > b) a -= b;
                else b -= a;
            }
            this.num /= a;
            this.den /= a;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Rational a = new Rational(4, 10);
            Rational b = new Rational(4, 5);
            Rational c = new Rational(a);
            Console.WriteLine(c.print());
            Console.WriteLine(c.getDec());
        }
    }
}
Editor is loading...