» »

[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. :)
    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:

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;
        }
 
    }
}

zadetek ::

Hvala :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# program za pretvorbo v desetiško število z rekurzijo

Oddelek: Programiranje
81473 (1196) MrStein
»

Visual C# problem

Oddelek: Programiranje
303114 (2286) mladec
»

Kalkulator

Oddelek: Programiranje
111312 (1079) lebdim
»

[C#] Operacija IN in ALI med dvema int številoma

Oddelek: Programiranje
111167 (980) LeQuack
»

[C#] razlaga

Oddelek: Programiranje
161591 (1308) krastača

Več podobnih tem