Calculadora: código javascript
Del diagrama al programa
Ahora se trata de convertir el diagrama (o el algoritmo previo) a un programa escrito en Javascript.
La estrategia que vamos a seguir es de abajo arriba. Es decir primero vamos a los sub procesos, como son ejecutar, esEjecutable y cambiarSigno
Cuando los tengamos listo pasamos al proceso global.
Se puede hacer al revés, comenzar por el global y luego pasar a los detalles. O al mismo tiempo, en un equipo unos se dedican a una parte del proyecto y otros a otra.
Sea como sea, escribe este código en el archivo que vas a usar para los scripts: calculadora.js, y guardalo en la misma carpeta junto al archivo de la página, (calculadora.html) y al de estilos calculadora.css.
//cambio de signo de una cadena numérica
function cambiarSigno(valor){
let num = parseInt(valor);
let res = valor;
if(!isNaN(num)){
num = num*(-1);
res = num.toString();
}
return res;
}
function esEjecutable(expresion){
let condicion = /^[+-]?\d+[\d\.]*[\+\-\*\/][+-]?\d+/;
return condicion.test(expresion);
}
//Ejecutar la expresión pasada que será de la forma
// numero operador numero (ej.: 45+6)
function ejecutar(expresion){
let partes = expresion.match(/(^[+-]?\d+\.?\d*)([\+\-\*\/])([+-]?\d+\.?\d*)/);
let valor=0;
partes[1] = parseFloat(partes[1]);
partes[3] = parseFloat(partes[3]);
switch (partes[2]){
case '+':
valor = partes[1]+partes[3]
break;
case '-':
valor = partes[1]-partes[3]
break;
case '*':
valor = partes[1]*partes[3]
break;
case '/':
valor = partes[1]/partes[3]
break;
default:
valor = "ERROR";
}
valor = valor.toString();
valor = valor.substr(0,10);
return valor;
}
Comentarios
Estas funciones pueden comprobarse independientemente del resto del programa.
Al escribirlas ten delante el diagrama de flujo de cada una de ellas. Te ayudará a entenderlas.
Puedes usar la herramienta de desarrolador del navegador (F12) para comprobar que funcionan correctamente.
La función cambio de signo la debes llamar con un argumento de cadena cambiarSigno("78") o cambiarSigno("-78"), pues los contenidos de los bloques de la página se van a leer texto.
La función eE jecutable la he sacado por simplificar el programa principal. Comprueba si una expresión se puede ejecutar, o sea, es del tipo 4*5 o 4-9
La función ejecutar será la encargada de hacer la operación que le tecleemos en la calculadora y deberá leer las operaciones como cadenas: ejecutar("4+5").