{ public int num; public int denum; public double dec;
public Rational(int n, int d)
{this.num = n;this.denum = d;}
public Rational(Rational r)
{this.num = r.num;this.denum = r.denum; }
public void Add(Rational r)
{ this.num = this.num * r.denum + r.num * this.denum;
this.denum = r.denum*this.denum; int g=GCD(num, denum);
this.num=this.num/g; this.denum=this.denum/g;
Console.WriteLine(this.num+"/"+this.denum);
public void Sub(Rational r)
{ this.num = this.num * r.denum - r.num * this.denum;
this.denum = r.denum*this.denum; int g=GCD(num, denum);
this.num=this.num/g; this.denum=this.denum/g;
public void Mult(Rational r)
{ this.num = this.num*r.num; this.denum = this.denum*r.denum;
int g=GCD(num, denum); this.num=this.num/g;
public void Div(Rational r)
{ this.num = this.num*r.denum; this.denum = this.denum*r.num;
int g=GCD(num, denum); this.num=this.num/g;
public int Compare(Rational r)
{ if(this.num*r.denum > r.num*this.denum) return 1;
if(this.num*r.denum < r.num*this.denum) return -1;
{ this.dec = (double)this.num/ this.denum; }
public void Print(Rational r)
{ this.dec = (double)this.num/ this.denum;
Console.WriteLine(this.dec); normPrint();
{ if (this.denum==1) Console.WriteLine(this.num);
else if(this.num==0) Console.WriteLine("0");
else Console.WriteLine(this.num+" / "+this.denum);
private int GCD(int a, int b)
if(a<b) {tmp=a; a=b; b=tmp;}
{ public static void Main()
int xnum, xdenum,ynum, ydenum;
Console.WriteLine("Въведи числител 1");
xnum = int.Parse(Console.ReadLine());
Console.WriteLine("Въведи знаменател 1");
xdenum = int.Parse(Console.ReadLine());
Console.WriteLine("Въведи числител 2");
ynum = int.Parse(Console.ReadLine());
Console.WriteLine("Въведи знаменател 2");
ydenum = int.Parse(Console.ReadLine());
Rational x = new Rational(xnum,xdenum);
Rational y = new Rational(ynum,ydenum);
Rational a = new Rational(x); a.Add(y); a.Print(a);
Rational s = new Rational(x); s.Sub(y); s.Print(s);
Rational m = new Rational(x); m.Mult(y); m.Print(m);
Rational d = new Rational(x); d.Div(y); d.Print(d);
if(c==1) Console.WriteLine("x>y");
else if(c==-1) Console.WriteLine("x<y");
else Console.WriteLine("x=y"); } }