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.
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