calculadora.html 3.55 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<html>
	<head>
		<title>Calculadora</title>
		<meta charset="utf-8"/>
		<style>
			input{
				width: 165px;
				height: 50px;
				text-align: right;
			}
			button{
				width: 50px;
				height: 50px;
			}
			#borrar_ventana {
16
				width: 163px;
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
			}
			.boton_accion{
				margin-left: 10px;
			}
			body{
				background-image: url("recursos/einstein.jpg");				
			}		
		</style>
	</head>
	<body>
		<section>		
			<input  id="input" type="text" disabled="disabled" value="2+1" />
			<table>
				<tr>
					<td>
						<button onclick=boton(7)>7</button>
						<button onclick=boton(8)>8</button>
						<button onclick=boton(9)>9</button>
						<button class="boton_accion" onclick=boton("/")>/</button>
					</td>
				</tr>
				<tr>
					<td>
						<button onclick=boton(6)>6</button>
						<button onclick=boton(5)>5</button>
						<button onclick=boton(4)>4</button>
						<button class="boton_accion" onclick=boton("*")>*</button>
					</td>
				</tr>
				<tr>
					<td>
						<button onclick=boton(1)>1</button>
						<button onclick=boton(2)>2</button>
						<button onclick=boton(3)>3</button>
						<button class="boton_accion" onclick=boton("-")>-</button>
					</td>
				</tr>
				<tr>				
					<td>
						<button disabled="disabled">&nbsp</button>
						<button onclick=boton(0)>0</button>
58
						<button onclick=boton(".")>.</button>
59 60 61 62 63 64 65 66
						<button class="boton_accion" onclick=boton("+")>+</button>
					</td>
				</tr>
			</table>		
			<button id="borrar_ventana" onclick="borrar_ventana()">Limpiar</button>
			<button class="boton_accion" onclick=boton("=")>=</button>
	</section>
		<script>
67
			//let contador = 0; //Para probar!!
68 69 70 71 72 73 74
			let a = document.getElementById("input");
			borrar_ventana();	
			let bandera = true;		
			function borrar_ventana(){
				a.value=" ";
			}						
			function agregar(elemento){				
75 76 77 78 79 80
				if(isNaN(parseFloat(elemento))){					
					if(elemento=="."){
						a.value = a.value + elemento;
					}else{
						a.value=a.value + " " + elemento + " ";
					}
81 82 83 84 85 86 87 88 89 90 91 92 93 94
				}
				else{
					a.value = a.value + elemento;
				}
				//a.value=a.value + " " + elemento;
			}
			function calcular_resultado(){
				let resultado;
				let operaciones;
				operaciones = a.value.split(" ");
				let valores = [0, 0];
				for(i=0; i<operaciones.length; i++){
					
					if(operaciones[i]=="+"){
95
						resultado = resultado + parseFloat(operaciones[++i]);
96 97
					}
					else if(operaciones[i]=="-"){
98
						resultado = resultado - parseFloat(operaciones[++i]);
99 100
					}
					else if(operaciones[i]=="*"){
101
						resultado = resultado * parseFloat(operaciones[++i]);
102 103
					}
					else if(operaciones[i] == "/"){
104
						resultado = resultado - parseFloat(operaciones[++i]);
105 106
					}
					else{
107
						resultado = parseFloat(operaciones[i]);
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
					}					
					//console.log(resultado);					
				}
				if(isNaN(resultado)){
					a.value = "error!";
					console.log(operaciones);
				}else{
				a.value = resultado.toString();
				console.log(resultado);//para debug
				console.log(operaciones);// para debug
				}
			}			
			function boton(input){				
				
				if(input!="="){
123 124 125 126 127 128 129 130
				if(bandera){
					agregar(input);
				}
				else{
					borrar_ventana();
					agregar(input);
					bandera = true;
				}				
131 132 133 134 135
				}
				else{
					calcular_resultado();
					bandera = false;
					//a.value = null;
136
					///console.log(parseFloat("1.1"));
137
				}
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

				//Este codigo era para que imprima el resultado
				//al meter dos numeros
				//pero no admite numeros con >1 cifras

				/*agregar(input);
				
				//contador++;
				if(contador>2){
					calcular_resultado();
					contador=0;
				}*/

				
				
					
				
155 156 157 158
			}		
		</script>		
	</body>
</html>