You are currently viewing Projeto Calculadora – Parte 4: Implementando a Lógica com JavaScript

Projeto Calculadora – Parte 4: Implementando a Lógica com JavaScript

Introdução

Neste tutorial, terceira parte de como criar uma calculador com HTML, CSS e Javascript, vamos aprender a criar a codificação Javascript da calculadora. Vamos implementar funcionalidades como adicionar números e operadores ao display, limpar o display, e calcular o resultado de uma expressão. Vamos entender passo a passo como cada função contribui para o funcionamento da calculadora.

Passo 1: Adicionando Números ao Display

Vamos começar com a função appendNumber que adiciona números ao display da calculadora:

/** Adiciona um número ao valor atual no elemento de exibição. */
function appendNumber(number) {
    document.getElementById('display').value += number;
}

Esta função recebe um número como argumento e o adiciona ao valor atual exibido no elemento com o id display.

Passo 2: Adicionando Operadores ao Display

A função appendOperator faz algo semelhante, mas para operadores (+, -, *, /):

function appendOperator(operator) {
    document.getElementById('display').value += ' ' + operator + ' ';
}

Ela adiciona um operador ao display, com espaços ao redor para facilitar a leitura da expressão.

Passo 3: Limpando o Display

Para limpar o display, utilizamos a função clearDisplay:

function clearDisplay() {
    document.getElementById('display').value = '';
}

Esta função simplesmente define o valor do elemento de exibição como uma string vazia.

Passo 4: Calculando o Resultado

A função calculateResult é responsável por calcular e exibir o resultado da expressão no display:

function calculateResult() {
    let display = document.getElementById('display').value;
    
    try {
        // Calcula o resultado da expressão
        let result = parseExpression(display);
        document.getElementById('display').value = result;
    } catch (error) {
        document.getElementById('display').value = 'Erro';
    }
}

Ela obtém a expressão do display e tenta calcular o resultado utilizando a função parseExpression. Se ocorrer um erro, exibe a mensagem Erro.

Passo 5: Analisando a Expressão

A função parseExpression processa a expressão matemática e calcula o resultado:

function parseExpression(expression) {
    // Remove espaços em branco
    expression = expression.replace(/\s+/g, '');
    // Substituir "--" por "+" (Exemplo: "10 - -5" se torna "10 + 5")
    expression = expression.replace(/--/g, '+');

    // Verifica se a expressão contém apenas números e operadores válidos
    if (!/^[0-9+\-*/().]+$/.test(expression)) {
        throw new Error('Expressão inválida');
    }
    // Dividir a expressão em operadores e operandos
    let tokens = expression.split(/([+\-*/])/);

    // Multiplicação e divisão
    for (let i = 0; i < tokens.length; i++) {
        if (tokens[i] === '*' || tokens[i] === '/') {
            let operand1 = parseFloat(tokens[i - 1]);
            let operand2 = parseFloat(tokens[i + 1]);
            let result;

            if (tokens[i] === '*') {
                result = operand1 * operand2;
            } else if (tokens[i] === '/') {
                result = operand1 / operand2;
            }

            tokens.splice(i - 1, 3, result); // Substitui a operação pelo resultado 
            i--; // Reajusta o índice após modificar o array
        }
    }

    // Adição e subtração
    let result = parseFloat(tokens[0]);
    for (let i = 1; i < tokens.length; i += 2) {
        let operator = tokens[i];
        let nextOperand = parseFloat(tokens[i + 1]);

        if (operator === '+') {
            result += nextOperand;
        } else if (operator === '-') {
            result -= nextOperand;
        }
    }

    return result;
}

Essa função remove espaços em branco, substitui sequências de “–” por “+”, verifica a validade da expressão e então divide a expressão em operadores e operandos. Realiza as operações de multiplicação e divisão primeiro, seguida por adição e subtração para calcular o resultado final.

Conclusão

Com este tutorial, construímos uma calculadora funcional em JavaScript. Agora você entende como adicionar números e operadores ao display, limpar o display e calcular o resultado de uma expressão. Esperamos que este tutorial tenha sido útil e ajudado a aprimorar suas habilidades em JavaScript!

>>>> 😊 Veja aqui o código completo do projeto no meu github

Marcos Santos

Bem-vindo ao msdicas, o seu ponto de partida para explorar o mundo da programação web! Aqui, você encontrará uma variedade de conteúdos voltados para iniciantes, incluindo tutoriais detalhados, projetos práticos, curiosidades interessantes e dicas valiosas. Nosso objetivo é tornar o aprendizado de HTML, JavaScript, CSS e outras tecnologias web acessível e divertido. Junte-se a nós nessa jornada e descubra como transformar suas ideias em realidade digital! Se você é um iniciante ou curioso, este blog é para você!
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments