1
resposta

[Projeto] [Projeto] [Projeto] Desafio: hora da prática - Calculadora

internal class Calculadora
{
    internal static double Calcular(double valor1, double valor2, char operacao)
    {
        double resultado = 0;

        switch (operacao)
        {
            case '+':
                resultado = Somar(valor1, valor2);
                break;
            case '-':
                resultado = Subtrair(valor1, valor2);
                break;
            case '*':
                resultado = Multiplicar(valor1, valor2);
                break;
            case '/':
                resultado = Dividir(valor1, valor2);
                break;
            case '^':
                resultado = Potencia(valor1, valor2);
                break;
            case 'r':
                resultado = RaizQuadrada(valor1);
                break;
            default:
                Console.WriteLine("Operação inválida.");
                break;
        }
    }

    private static double Somar(double a, double b)
    {
        return a + b;
    }

    private static double Subtrair(double a, double b)
    {
        return a - b;
    }

    private static double Multiplicar(double a, double b)
    {
        return a * b;
    }

    private static double Dividir(double a, double b)
    {
        if (b != 0)
            return a / b;
        else
        {
            Console.WriteLine("Erro: Divisão por zero.");
            return 0;
        }
    }

    private static double Potencia(double a, double b)
    {
        return Math.Pow(a, b);
    }

    private static double RaizQuadrada(double a)
    {
        return Math.Sqrt(a);
    }
}
1 resposta

Oi, Eduardo! Como vai?

Seu projeto ficou bem organizado, com os métodos separados para cada operação da calculadora, o que deixa a classe mais fácil de ler e manter. Um ponto importante é que o método Calcular foi declarado para retornar double, então precisa ter um return resultado; ao final para devolver o valor calculado.

Uma dica interessante para o futuro é validar a raiz quadrada antes de usar Math.Sqrt, evitando resultados inválidos quando o número for negativo. Veja este exemplo:


private static double RaizQuadrada(double a)
{
    if (a < 0)
    {
        Console.WriteLine("Erro: numero negativo.");
        return 0;
    }

    return Math.Sqrt(a);
}

Esse código verifica se o valor é negativo antes de calcular a raiz.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!