public static void Main()
Kalkulacka pocitadlo = new Kalkulacka(100);
Console.WriteLine("Ahoj, já jsem kalkulačka. Když mě budeš mít plné zuby, zadej \"x\". Vynuluješ mě zadáním \"r\".");
Console.WriteLine("Zadej operaci (+,-,*,/,^):");
vstup = Console.ReadLine();
while((vstup != "x")&&(vstup != "r")&&(vstup != "+")&&(vstup != "-")&&(vstup != "*")&&(vstup != "/")&&(vstup != "^"));
stav = NastavStav(vstup);
if ((stav == 3)||(stav == 0)) break;
Console.WriteLine("Zadej číslo:");
vstup = Console.ReadLine();
while((vstup != "x")&&(vstup != "r")&&!(Double.TryParse(vstup, out a)));
stav = NastavStav(vstup);
if ((stav == 3)||(stav == 0)) break;
if ((pocitadlo.VratVysledek() == 0)&&(operace == null))
pocitadlo.NastavVysledek(Convert.ToDouble(vstup));
cislo = Convert.ToDouble(vstup);
predvysledek = pocitadlo.VratVysledek();
pocitadlo.NastavVysledek(pocitadlo.Vypocet(operace, cislo));
if (pocitadlo.KontrolaKapacity(predvysledek))
Console.WriteLine("Byla překročena kapacita kalkulačky.");
Console.WriteLine("Předchozí výsledek byl {0}. Můžeš na něm pokračovat s výpočtem, nebo mě resetuj (r).", predvysledek);
Console.WriteLine("{0} {1} {2} = {3}", predvysledek, operace, cislo, pocitadlo.VratVysledek());
Console.WriteLine("Končím.");
static int NastavStav(string vstup)
if (vstup == "x")stav = 3;
else if (vstup == "r") stav = 0;
if(Double.TryParse(vstup, out a)) stav = 1;
public Kalkulacka(double kapacita)
this.kapacita = kapacita;
private void Scitani(double a)
private void Odcitani(double a)
private void Nasobeni(double a)
private void Deleni(double a)
private void Mocneni(double a)
public double Vypocet(string operace, double a)
case "+": Scitani(a); break;
case "-": Odcitani(a); break;
case "*": Nasobeni(a); break;
case "/": Deleni(a); break;
case "^": Mocneni(a); break;
public double VratVysledek()
public void NastavVysledek(double vstup)
public bool KontrolaKapacity(double predvysledek)
bool kapacitaPrekrocena = false;
if ((this.vysledek>=this.kapacita)||(this.vysledek<=(this.kapacita*(-1))))
kapacitaPrekrocena = true;
this.vysledek = predvysledek;
return kapacitaPrekrocena;