1
resposta

Desafio Aula 4 - Calculadora

Fiz o desafio da calculadora. Apesar de funcionar, meu código esta limitado a uma fórmula de somente 3 caracteres. Talvez com o tempo eu volte e corrija este problema.

function realizarOperacao() {
    let formula = '8/2'
    formula = formula.split("");
    a = formula[0];
    b = formula[2];
    operador = formula[1];
    defineOperador(a,b,operador);
}

function defineOperador(a,b,operador) {
    if (operador == '+') {
        adicao(a,b);
        console.log("adição");
    } else if (operador == '-') {
        subtracao(a,b);
        console.log("subtração");
    } else if (operador == "*") {
        multiplicacao(a,b);
        console.log("multiplicação");
    } else {
        divisao(a,b)
        console.log("divisão");
    }
}

function adicao(a,b) {
    let n1 = parseInt(a);
    let n2 = parseInt(b);
    let resultado = n1 + n2;
    return alert(` O resultado de ${n1} + ${n2} é ${resultado}`);
}

function subtracao(a,b) {
    let n1 = parseInt(a);
    let n2 = parseInt(b);
    let resultado = n1 - n2;
    return alert(` O resultado de ${n1} - ${n2} é ${resultado}`);}

function multiplicacao(a,b) {
    let n1 = parseInt(a);
    let n2 = parseInt(b);
    let resultado = n1 * n2;
    return alert(` O resultado de ${n1} * ${n2} é ${resultado}`);}

function divisao(a,b) {
    let n1 = parseInt(a);
    let n2 = parseInt(b);
    let resultado = n1 / n2;
    return alert(` O resultado de ${n1} / ${n2} é ${resultado}`);}
1 resposta

Olá, Alexandre.

Tudo bem?

Para melhorar sua calculadora e permitir que ela suporte fórmulas mais complexas, você pode utilizar a função eval() do JavaScript, que avalia uma string como uma expressão matemática. No entanto, é importante ter cuidado ao usar eval() devido a questões de segurança, especialmente se a entrada vier de um usuário.

Aqui está uma sugestão de como você pode modificar seu código para suportar fórmulas mais complexas:

function realizarOperacao() {
    let formula = '8/2+3*4-1'; // Exemplo de fórmula mais complexa
    let resultado = avaliarFormula(formula);
    alert(`O resultado de ${formula} é ${resultado}`);
}

function avaliarFormula(formula) {
    try {
        // Utiliza a função eval para avaliar a fórmula
        let resultado = eval(formula);
        return resultado;
    } catch (e) {
        // Caso ocorra um erro na avaliação, exibe uma mensagem de erro
        return "Erro na fórmula";
    }
}

// Chama a função para realizar a operação
realizarOperacao();

Neste exemplo, a função avaliarFormula usa eval para calcular o resultado da fórmula. A função realizarOperacao chama avaliarFormula passando a fórmula como string e exibe o resultado.

Lembre-se de que, se você estiver lidando com entrada de usuário, é crucial validar e sanitizar a entrada antes de usar eval para evitar possíveis ataques de injeção de código.

Espero ter ajudado e bons estudos!