Problema c#

Configurare noua (How To)

Situatie

– se declara numerele intregi ab si rez de tip int, reprezentand operatii si rezultatul;
– se declara caracterul op de tip char, reprezentand operatia care se va executa;
– se declara variabila ok de tip short, care va ramana 1 daca operatia se termina cu succes, astfel i se va atribui 0;
– avand in vedere ca va trebui sa comparam valoarea retinuta de variabila op cu mai multe valori, folosind instructiunea de selectie switch. Avem 4 randuri case, una pentru fiecare dintre valorile +, -, *, / si ramura default pentru cazurile in care op are orice alta valoare inafara celor 4 enumerate anterior, moment in care ok ia valoarea 0.
In cazul in care op are una din valorile +, -, * se efectueaza operatia corespunzatoare, iar rezultatul se depune in variabila rez. In cazul in care op are valoarea /, prima data se va testa cu ajutorul unei instructiuni if, valoarea celui al doilea operand, deoarece daca el este 0, impartirea nu se poate realiza, caz in care se va afisa pe ecran un mesaj corespunzator. Daca valoarea lui b este diferita de 0, se procedeaza ca si in cazul operatiilor +, -, *.
La final, in cadrul unei instructiuni if se testeaza valoarea variabilei ok.
Daca ok a ramas 1, atunci se va afisa operatia efectuata impreuna cu rezultatul, altfel se va tipari un mesaj ca operatorul introdus de la tastatura nu este unul valid.

Solutie

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _5
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, b, rez = 0;
            char op;
            short ok = 1;
            Console.Write("Primul numar : ");
            a = int.Parse(Console.ReadLine());
            Console.Write("Al doilea numar : ");
            b = int.Parse(Console.ReadLine());
            Console.Write("Operatia dorita : ");
            op = char.Parse(Console.ReadLine());
            switch (op)
            {
                case '+': rez = a + b; break;
                case '-': rez = a - b; break;
                case '*': rez = a * b; break;
                case '/':
                    if (b != 0) rez = a / b;
                    else
                    {
                        Console.WriteLine("Impartirea la 0 este imposibila!!");
                        Console.ReadKey();
                        return;
                    }
                    break;
                default: ok = 0; break;
            }
            if (ok == 1)
                Console.WriteLine("{0} {1} {2} = {3}", a, op, b, rez);
            else
                Console.WriteLine("Operatorul este invalid");
            Console.ReadLine();
        }
    }
}

Tip solutie

Permanent

Voteaza

(7 din 13 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?