Forum » Programiranje » [C#] Kalkulator
[C#] Kalkulator
zadetek ::
Narediti moram kalkulator, ki bo izračunal vsoto, razliko, zmnožek, količnik treh ali dveh števil.
Ne znam pravilno naštudirati, kako bi določil, da se prej izvede * in / pred + in -. Uporabim lahko samo lažje funkcije, brez arraya ali kakšnega conveta ipd.
manjka mi za 2 načun, kjer so vpisana tri števila in dva operatorja, naredil sem funkcijo, ki bi vračala prioriteto operatorjev, samo kako bi sedaj to uporabil, sem začetnik. :)
Ne znam pravilno naštudirati, kako bi določil, da se prej izvede * in / pred + in -. Uporabim lahko samo lažje funkcije, brez arraya ali kakšnega conveta ipd.
manjka mi za 2 načun, kjer so vpisana tri števila in dva operatorja, naredil sem funkcijo, ki bi vračala prioriteto operatorjev, samo kako bi sedaj to uporabil, sem začetnik. :)
class Program { public string prioriteta (string operatorji) { switch (operatorji) { case "-": return (int) prvi 1; case "+": return 1; case "*": return 2; case "/": return 2; default: return 0; break; } } public int vsota(int a, int b) { int rezultat; rezultat = a + b; return rezultat; } public int razlika(int a, int b) { int rezultat; rezultat = a - b; return rezultat; } public int zmnozek(int a, int b) { int rezultat; rezultat = a * b; return rezultat; } public int kolicnik(int a, int b) { int rezultat; rezultat = a / b; return rezultat; } static void Main(string[] args) { int a, b, c; string operator1, operator2; double rezultat; string nacin; Program Kalkulator = new Program(); Console.WriteLine("*****KALKULATOR*****"); Console.WriteLine("Vpiši 1 za način +, -, /, * z dvemi števili"); Console.WriteLine("Vpiši 2 za način +, -, /, * s tremi števili"); nacin = Console.ReadLine(); switch (nacin) { case "1": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); switch (operator1) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(a, b)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(a, b)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožek števil je {0}", Kalkulator.zmnozek(a, b)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(a, b)); Console.ReadLine(); break; default: rezultat = 0; break; } break; case "2": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator2 = Console.ReadLine(); Console.Write("Tretje stevilo: "); c = Convert.ToInt32(Console.ReadLine()); //določanje prioritete operatorjev }
amacar ::
Edit: Pa najboljše da daš vse skupaj v double, ker sicer ne boš imel decimalk pri količniku.
Ni se mi dalo popravljat, pa sem kr nadaljeval s tvojimi switchi, čeprav koda zgleda obupno. Mislim, da bi tako moralo delati:
Ni se mi dalo popravljat, pa sem kr nadaljeval s tvojimi switchi, čeprav koda zgleda obupno. Mislim, da bi tako moralo delati:
class Program { public int prioriteta (string operator1, string operator2) { int zacni=1; if (operator1 == "+" || operator1 == "-") zacni = 2; return zacni; } public int vsota(int a, int b) { int rezultat; rezultat = a + b; return rezultat; } public int razlika(int a, int b) { int rezultat; rezultat = a - b; return rezultat; } public int zmnozek(int a, int b) { int rezultat; rezultat = a * b; return rezultat; } public int kolicnik(int a, int b) { int rezultat; rezultat = a / b; return rezultat; } static void Main(string[] args) { int a, b, c; string operator1, operator2; double rezultat; string nacin; Program Kalkulator = new Program(); Console.WriteLine("*****KALKULATOR*****"); Console.WriteLine("Vpiši 1 za način +, -, /, * z dvemi števili"); Console.WriteLine("Vpiši 2 za način +, -, /, * s tremi števili"); nacin = Console.ReadLine(); switch (nacin) { case "1": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); switch (operator1) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(a, b)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(a, b)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožek števil je {0}", Kalkulator.zmnozek(a, b)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(a, b)); Console.ReadLine(); break; default: rezultat = 0; break; } break; case "2": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator2 = Console.ReadLine(); Console.Write("Tretje stevilo: "); c = Convert.ToInt32(Console.ReadLine()); if (Kalkulator.prioriteta(operator1, operator2) == 2) { switch (operator2) { case "-": b = Kalkulator.razlika(b, c); break; case "+": b = Kalkulator.vsota(b, c); break; case "*": b = Kalkulator.zmnozek(b, c); break; case "/": b = Kalkulator.kolicnik(b, c); break; default: b = 0; break; } switch (operator1) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(a, b)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(a, b)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožek števil je {0}", Kalkulator.zmnozek(a, b)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(a, b)); Console.ReadLine(); break; default: rezultat = 0; break; } } else { switch (operator1) { case "-": b = Kalkulator.razlika(a, b); break; case "+": b = Kalkulator.vsota(a, b); break; case "*": b = Kalkulator.zmnozek(a, b); break; case "/": b = Kalkulator.kolicnik(a, b); break; default: rezultat = 0; break; } switch (operator2) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(b, c)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(b, c)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožeka števil je {0}", Kalkulator.zmnozek(b, c)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(b, c)); Console.ReadLine(); break; default: b = 0; break; } } break; //določanje prioritete operatorjev default: break; } } }
Zgodovina sprememb…
- spremenil: amacar ()
amacar ::
Malo krajše...
class Program { public int prioriteta (string operator1, string operator2) { int zacni=1; if (operator1 == "+" || operator1 == "-") zacni = 2; return zacni; } public int vsota(int a, int b) { int rezultat; rezultat = a + b; return rezultat; } public int razlika(int a, int b) { int rezultat; rezultat = a - b; return rezultat; } public int zmnozek(int a, int b) { int rezultat; rezultat = a * b; return rezultat; } public int kolicnik(int a, int b) { int rezultat; rezultat = a / b; return rezultat; } static void Main(string[] args) { int a, b, c; string operator1, operator2; double rezultat; string nacin; Program Kalkulator = new Program(); Console.WriteLine("*****KALKULATOR*****"); Console.WriteLine("Vpiši 1 za način +, -, /, * z dvemi števili"); Console.WriteLine("Vpiši 2 za način +, -, /, * s tremi števili"); nacin = Console.ReadLine(); switch (nacin) { case "1": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); switch (operator1) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(a, b)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(a, b)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožek števil je {0}", Kalkulator.zmnozek(a, b)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(a, b)); Console.ReadLine(); break; default: rezultat = 0; break; } break; case "2": Console.Write("Prvo stevilo: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator1 = Console.ReadLine(); Console.Write("Drugo stevilo: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("Vpisi znak (+, -, /, *): "); operator2 = Console.ReadLine(); Console.Write("Tretje stevilo: "); c = Convert.ToInt32(Console.ReadLine()); if (Kalkulator.prioriteta(operator1, operator2) == 2) { int temp = a; string temp_o = operator1; operator1 = operator2; operator2 = temp_o; a = b; b = c; c = temp; } switch (operator1) { case "-": b = Kalkulator.razlika(a, b); break; case "+": b = Kalkulator.vsota(a, b); break; case "*": b = Kalkulator.zmnozek(a, b); break; case "/": b = Kalkulator.kolicnik(a, b); break; default: rezultat = 0; break; } switch (operator2) { case "-": Console.WriteLine("Razlika števil je {0}", Kalkulator.razlika(b, c)); Console.ReadLine(); break; case "+": Console.WriteLine("Vsota števil je {0}", Kalkulator.vsota(b, c)); Console.ReadLine(); break; case "*": Console.WriteLine("Zmnožeka števil je {0}", Kalkulator.zmnozek(b, c)); Console.ReadLine(); break; case "/": Console.WriteLine("Količnik števil je {0}", Kalkulator.kolicnik(b, c)); Console.ReadLine(); break; default: b = 0; break; } break; //določanje prioritete operatorjev default: break; } } }
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# program za pretvorbo v desetiško število z rekurzijoOddelek: Programiranje | 1473 (1196) | MrStein |
» | Visual C# problemOddelek: Programiranje | 3114 (2286) | mladec |
» | KalkulatorOddelek: Programiranje | 1312 (1079) | lebdim |
» | [C#] Operacija IN in ALI med dvema int številomaOddelek: Programiranje | 1167 (980) | LeQuack |
» | [C#] razlagaOddelek: Programiranje | 1591 (1308) | krastača |