-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
71 lines (63 loc) · 2.69 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Declaração de variáveis globais
let valorAtual = ''; // Armazena o valor digitado atualmente
let operadorAtual = ''; // Armazena o operador atual (+, -, *, /)
let valorAnterior = ''; // Armazena o valor anterior para o cálculo
// Função para adicionar números ao visor
function adicionarValor(valor) {
valorAtual += valor; // Concatena o valor atual com o novo número
atualizarVisor(valorAtual); // Atualiza o visor com o valor atual
}
// Função para adicionar o operador matemático
function adicionarOperador(operador) {
if (valorAtual === '') return; // Se não houver valor, não faz nada
if (valorAnterior !== '') { // Se já houver um valor anterior, realiza o cálculo
calcular(); // Calcula o resultado antes de aplicar o novo operador
}
operadorAtual = operador; // Define o novo operador
valorAnterior = valorAtual; // Salva o valor atual como o valor anterior
valorAtual = ''; // Reseta o valor atual para receber o próximo número
}
// Função para realizar o cálculo
function calcular() {
let resultado;
const valor1 = parseFloat(valorAnterior); // Converte o valor anterior para número
const valor2 = parseFloat(valorAtual); // Converte o valor atual para número
if (isNaN(valor1) || isNaN(valor2)) return; // Verifica se os valores são números válidos
// Escolhe a operação com base no operador
switch (operadorAtual) {
case '+':
resultado = valor1 + valor2;
break;
case '-':
resultado = valor1 - valor2;
break;
case '*':
resultado = valor1 * valor2;
break;
case '/':
if (valor2 === 0) { // Verifica se a divisão por zero está acontecendo
alert('Divisão por zero não é permitida!'); // Avisa o usuário
limparVisor();
return;
}
resultado = valor1 / valor2;
break;
default:
return; // Se não houver operador válido, sai da função
}
valorAtual = resultado; // Atualiza o valor atual com o resultado do cálculo
operadorAtual = ''; // Reseta o operador
valorAnterior = ''; // Reseta o valor anterior
atualizarVisor(valorAtual); // Atualiza o visor com o resultado
}
// Função para limpar o visor
function limparVisor() {
valorAtual = ''; // Limpa o valor atual
operadorAtual = ''; // Limpa o operador atual
valorAnterior = ''; // Limpa o valor anterior
atualizarVisor('0'); // Reseta o visor para zero
}
// Função para atualizar o visor
function atualizarVisor(valor) {
document.getElementById('visor').value = valor; // Atualiza o valor no visor
}