public double AktualniVysledek = 0;
public void Pricti(double cislo)
AktualniVysledek += cislo;
public void Odecti(double cislo)
AktualniVysledek -= cislo;
public void Vynasob(double cislo)
AktualniVysledek *= cislo;
public void Vydel(double cislo)
AktualniVysledek /= cislo;
public void Umocni(double cislo)
double zaklad = AktualniVysledek;
for (int i = 1; i < cislo; i++)
AktualniVysledek *= zaklad;
public void Modulo(double cislo)
AktualniVysledek %= cislo;
public void ProvedOperaci(string operace, double cislo)
case "+": Pricti(cislo); break;
case "-": Odecti(cislo); break;
case "*": Vynasob(cislo); break;
case "/": Vydel(cislo); break;
case "^": Umocni(cislo); break;
case "%": Modulo(cislo); break;
public bool JePodporovanaOperace(string operace)
return operace == "+" || operace == "-" || operace == "*" || operace == "/" || operace == "^" || operace == "%";
public static void Main()
Kalkulacka kalkulacka1 = new Kalkulacka();
string zpravaKalkulackaKonci = "Kalkulačka končí.";
bool jePrvniCislo = true;
Console.WriteLine("Zadej číslo:");
vstup = Console.ReadLine();
Console.WriteLine(zpravaKalkulackaKonci);
if (double.TryParse(vstup, out cislo))
kalkulacka1.AktualniVysledek = cislo;
Console.WriteLine("Není číslo, zadej znova:");
double vysledek = kalkulacka1.AktualniVysledek;
kalkulacka1.ProvedOperaci(operace, cislo);
Console.WriteLine("Výsledek: " + vysledek + " " + operace + " " + cislo + " = " + kalkulacka1.AktualniVysledek);
Console.WriteLine("Zadej operátor (+, -, *, /, ^, %):");
operace = Console.ReadLine();
if (kalkulacka1.JePodporovanaOperace(operace))
Console.WriteLine(zpravaKalkulackaKonci);
Console.WriteLine("Není platný operátor, zadej znova:");