public static void Main()
Zlomek zlomek1 = new Zlomek(45,10);
Console.WriteLine("zlomek1 = " + zlomek1);
Zlomek zlomek2 = new Zlomek(2,5);
Console.WriteLine("zlomek2 = " + zlomek2);
Zlomek zlomek3 = zlomek1 * zlomek2;
Console.WriteLine(zlomek1 + "*" + zlomek2 + " = " + zlomek3);
Zlomek zlomek4 = zlomek1/zlomek2;
Console.WriteLine(zlomek1+"/"+zlomek2+" = "+zlomek4);
Zlomek zlomek5 = zlomek1+zlomek2;
Console.WriteLine(zlomek1+"+"+zlomek2+" = "+zlomek5);
Zlomek zlomek6 = zlomek1-zlomek2;
Console.WriteLine(zlomek1+"-"+zlomek2+" = "+zlomek6);
Zlomek zlomek7 = zlomek1.PrevedNaZakladni();
Console.WriteLine(zlomek1+" = "+zlomek7+" = "+zlomek7.VypisSlozeny());
public int Citatel {get;set;}
public int Jmenovatel {get;set;}
public Zlomek(int citatel, int jmenovatel)
public override string ToString()
return Citatel + "/" + Jmenovatel;
public static Zlomek operator*(Zlomek zlomek1, Zlomek zlomek2)
return new Zlomek(zlomek1.Citatel * zlomek2.Citatel, zlomek1.Jmenovatel * zlomek2.Jmenovatel);
public static Zlomek operator/(Zlomek zlomek1, Zlomek zlomek2)
return new Zlomek(zlomek1.Citatel * zlomek2.Jmenovatel, zlomek1.Jmenovatel * zlomek2.Citatel);
public static Zlomek operator+(Zlomek zlomek1, Zlomek zlomek2)
return new Zlomek((zlomek1.Citatel*CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel)/zlomek1.Jmenovatel)+(zlomek2.Citatel*CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel)/zlomek2.Jmenovatel), CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel));
public static Zlomek operator-(Zlomek zlomek1, Zlomek zlomek2)
return new Zlomek((zlomek1.Citatel*CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel)/zlomek1.Jmenovatel)-(zlomek2.Citatel*CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel)/zlomek2.Jmenovatel), CalcLCM(zlomek1.Jmenovatel,zlomek2.Jmenovatel));
private static int CalcGCD(int a, int b)
private static int CalcLCM(int a, int b)
return a * b / CalcGCD(a,b);
public Zlomek PrevedNaZakladni()
return new Zlomek(Citatel / CalcGCD(Citatel, Jmenovatel), Jmenovatel / CalcGCD(Citatel, Jmenovatel));
public string VypisSlozeny()
return (Citatel / Jmenovatel) + " a " + (Citatel - (Citatel / Jmenovatel) * Jmenovatel) + "/" + Jmenovatel;