-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCalculadoraEspecializada.js
108 lines (99 loc) · 3.4 KB
/
CalculadoraEspecializada.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
class CalculadoraEspecilizada extends CalculadoraRPN{
constructor(){
super();
this.consumoPersona=4216;//La media de un dia=136l
this.fugasMes=465;//La media de un dia =15l
this.precioAgua=1.9;//1m^3 de agua=1,90€
this.deposito=600;//Cada piso tiene un deposito de reserva de 600l
this.agua;//Guarda el consumo de agua
}
consumoAguaVivienda(){
this.calcularV();
this.pila.push(this.agua);
super.actualizarPantalla();
}
consumoAguaEdificio(){
this.calcularE();
this.pila.push(this.agua);
super.actualizarPantalla();
}
precioVivienda(){
this.calcularV();
var result=(this.agua*this.precioAgua)/1000;
this.pila.push(result);
super.actualizarPantalla();
}
precioEdificio(){
this.calcularE();
var result=(this.agua*this.precioAgua)/1000;
this.pila.push(result);
super.actualizarPantalla();
}
calcularV(){
var fugas=this.pila.pop();
var personas=this.pila.pop();
this.agua=personas*this.consumoPersona+fugas*this.fugasMes;
}
calcularE(){
var fugas=this.pila.pop();
var personas=this.pila.pop();
var pisos=this.pila.pop();
this.agua=personas*this.consumoPersona+fugas*this.fugasMes+pisos*this.deposito;
}
calcularPrecio(){
var litros=this.pila.pop();
var result=litros*this.precioAgua/1000;
this.pila.push(result);
super.actualizarPantalla();
}
reconocerTeclas(){
document.addEventListener('keydown',(event)=>{
const tecla=event.key;
if(tecla=='0' || tecla =="1" || tecla=="2"|| tecla=="3" || tecla=="4"
|| tecla=="5" || tecla=="6" || tecla=="7" || tecla=="8"
|| tecla=="9"){
super.numero(tecla);
}else if(tecla=='+'){
super.sumar();
}else if(tecla=="-"){
super.restar();
}else if(tecla=="*"){
super.multiplicar();
}else if(tecla=="/"){
super.dividir();
}else if(tecla=="."){
super.punto();
}else if(tecla=="Enter" || tecla=="="){
super.resolver();
}else if(tecla=="C" || tecla=="c" || tecla=="Delete"){
super.clear();
}else if(tecla=="s" ){
super.sin();
}else if(tecla=="c"){
super.cos();
}else if(tecla=="t"){
super.tan();
}else if(tecla=="S" ){
super.asin();
}else if(tecla=="C"){
super.acos();
}else if(tecla=="T"){
super.atan();
}else if(tecla=="r" || tecla=="R"){
super.raiz();
}else if(tecla=="e"){
this.consumoAguaEdificio();
}else if(tecla=="E"){
this.precioEdificio();
}else if(tecla=="v"){
this.consumoAguaVivienda();
}else if(tecla=="V"){
this.precioVivienda();
}else if(tecla=="A" || tecla=="a"){
this.precioAgua();
}
})
}
}
var calculadora=new CalculadoraEspecilizada();
calculadora.reconocerTeclas();