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").