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 | 1641 (1364) | MrStein |
| » | Visual C# problemOddelek: Programiranje | 3363 (2535) | mladec |
| » | KalkulatorOddelek: Programiranje | 1429 (1196) | lebdim |
| » | [C#] Operacija IN in ALI med dvema int številomaOddelek: Programiranje | 1325 (1138) | LeQuack |
| » | [C#] razlagaOddelek: Programiranje | 1731 (1448) | krastača |