-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalculator.js
108 lines (72 loc) · 2.85 KB
/
calculator.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
var input = document.getElementById('tela'),
numero = document.querySelectorAll('.numeros div'),
conta = document.querySelectorAll('.contas div'),
resultado = document.getElementById('resultado'),
limpar = document.getElementById('limpar'),
resultadoEstaMostrado = false;
for (var i = 0; i < numero.length; i++) {
numero[i].addEventListener("click", function(e) {
var textoNaTela = input.innerHTML;
var ultimoChar = textoNaTela[textoNaTela.length - 1];
if (resultadoEstaMostrado === false) {
input.innerHTML += e.target.innerHTML;
} else if (resultadoEstaMostrado === true && ultimoChar === "+" || ultimoChar === "-" || ultimoChar === "×" || ultimoChar === "÷") {
resultadoEstaMostrado = false;
input.innerHTML += e.target.innerHTML;
} else {
resultadoEstaMostrado = false;
input.innerHTML = "";
input.innerHTML += e.target.innerHTML;
}
});
}
for (var i = 0; i < conta.length; i++) {
conta[i].addEventListener("click", function(e) {
var textoNaTela = input.innerHTML;
var ultimoChar = textoNaTela[textoNaTela.length - 1];
if (ultimoChar === "+" || ultimoChar === "-" || ultimoChar === "×" || ultimoChar === "÷") {
var newString = textoNaTela.substring(0, textoNaTela.length - 1) + e.target.innerHTML;
input.innerHTML = newString;
} else if (textoNaTela.length == 0) {
alert("coloque um numero primeiro");
} else {
input.innerHTML += e.target.innerHTML;
}
});
}
//
resultado.addEventListener("click", function() {
var inputString = input.innerHTML;
var numeros = inputString.split(/\+|\-|\×|\÷/g);
var contas = inputString.replace(/[0-9]|\./g, "").split("");
var divide = contas.indexOf("÷");
while (divide != -1) {
numeros.splice(divide, 2, numeros[divide] / numeros[divide + 1]);
contas.splice(divide, 1);
divide = contas.indexOf("÷");
}
var multiply = contas.indexOf("×");
while (multiply != -1) {
numeros.splice(multiply, 2, numeros[multiply] * numeros[multiply + 1]);
contas.splice(multiply, 1);
multiply = contas.indexOf("×");
}
var subtract = contas.indexOf("-");
while (subtract != -1) {
numeros.splice(subtract, 2, numeros[subtract] - numeros[subtract + 1]);
contas.splice(subtract, 1);
subtract = contas.indexOf("-");
}
var add = contas.indexOf("+");
while (add != -1) {
numeros.splice(add, 2, parseFloat(numeros[add]) + parseFloat(numeros[add + 1]));
contas.splice(add, 1);
add = contas.indexOf("+");
}
input.innerHTML = numeros[0];
resultadoEstaMostrado = true;
});
// adiconando evento de clique no botão limpar
limpar.addEventListener("click", function() {
input.innerHTML = "";
})