Skip to content

Latest commit

 

History

History
92 lines (77 loc) · 2.95 KB

File metadata and controls

92 lines (77 loc) · 2.95 KB

Problema

23 - Escreve um programa que sirva como calculadora de linha de comandos, aceitando três argumentos: 1) a operação a realizar; 2) o primeiro operando; e, 3) o segundo operando. A calculadora deve reconhecer as seguintes operações indicadas no primeiro argumento: +, -, /, x e p (sendo que última representa a operação de potenciação). A calculadora deve realizar a operação entre os dois operandos (que se podem assumir como doubles), mostrar o resultado e terminar a execução. Se não forem indicados três argumentos, ou se a operação não for conhecida, o programa deve terminar com uma mensagem de erro apropriada.

Exemplo de execução: dotnet run + 3.2 5, que deverá mostrar 8.2.

Soluções

Solução 1

using System;

namespace taschenrechner
{
    class Program
    {
        static void Main(string[] args)
        {
            // Declarar variáveis para operadores e para os números
            string operand;
            double numOne;
            double numTwo;

            // Se utilizador inserir +/- de 3 argumentos
            if (args.Length != 3)
            {
              Console.WriteLine("Erro! Tem que inserir 3 argumentos");
              return;
            }

            // Conversão de tipos
            operand = args[0];
            numOne = Convert.ToDouble(args[1]);
            numTwo = Convert.ToDouble(args[2]);

            // Se utilizador não meter os operadores indicados
            if (operand != "+" && operand != "-" && operand != "*" && operand
                != "/" && operand != "p")  
            {
                Console.WriteLine($@"Erro! O caráter ""{operand}"" é inválido!"
                + $" Operação desconhecida programa ira fechar.");
                return;
            }

            // Switch loop para cada operação desejada
            switch (operand)
            {
                case "+":
                    double sum = numOne + numTwo;
                    Console.WriteLine($"{numOne} + {numTwo} " +
                    $"= {sum}");
                    break;

                case "-":
                    double minus = numOne - numTwo;
                    Console.WriteLine($"{numOne} - {numTwo} " +
                    $"= {minus}");
                    break;

                case "*":
                    double mult = numOne * numTwo;
                    Console.WriteLine($"{numOne} * {numTwo} " +
                    $"= {mult}");
                    break;

                case "/":
                    double div = numOne / numTwo;
                    Console.WriteLine($"{numOne} / {numTwo} " +
                    $"= {div}");
                    break;

                case "p":
                    double poten = Math.Pow(numOne, numTwo);
                    Console.WriteLine($"{numOne} ^ {numTwo} " +
                    $"= {poten}");
                    break;
            }
        }
    }
}

Por Ana Dos Santos