miércoles, 14 de septiembre de 2016

Menos por menos, más

Vamos a ver un programa que permite practicar operaciones sencillas de suma y resta de dos números que pueden ser negativos o positivos. Se generan de forma aleatoria y nos muestra una expresión como por ejemplo, la siguiente, donde tenemos que decir a que es igual el resultado.

-6-(-8) = 2

La idea es practicar la ley de los signos.


https://repl.it/D9VL/2

 //Programa para operar sumando dos cifras con su signo  
 //Se trata de aprender bien que 'menos por menos es más'  
 function genera(){  
   var uno=Math.floor((Math.random() * 10))+1;  //este el primero de los dos números  
   var dos=Math.floor((Math.random() * 10))+1;  //este es el segundo de los dos números  
   var sig1=1;                                     //este es el signo del primer número  
   var opera="+";                 //este es el signo de suma o resta entre los dos números  
   var sig2=1;                  //este es el signo del segundo número  
   var pre="";                  //el paréntesis abierto si el segundo número es negativo  
   var pos="";                  //el paréntesis cerrado si el segundo número es negativo  
   var resultado;                                 //el resultado de hacer la operación  
   if (Math.random()<0.5){            //el signo1 puede ser -1 o 1 con un 50% de probabilidades  
     sig1=-1;  
   }  
   if (Math.random()<0.5){            //signo para la operación de suma o resta (50% de probabilidades)  
     opera="-";  
   }  
   if (Math.random()<0.5){            //el signo2 puede ser -1 o 1 con un 50% de probabilidades  
     sig2=-1;  
     pre="(";                   //si el sig2 es negativo entonces la cifra dos va entre paréntesis      
     pos=")";  
   }  
   var x=prompt(sig1*uno+opera+pre+sig2*dos+pos+'=');  
   if(opera==="+"){  
     resultado=(sig1*uno)+(sig2*dos);  
     } else {  
       resultado=(sig1*uno)-(sig2*dos);  
     }  
   if(x==resultado){                //solo dos iguales pq x es string    
     document.write("BIEN<br>");  
     document.write(sig1*uno+opera+pre+sig2*dos+pos+'='+resultado);   
   } else{  
     document.write("NO es correcto.<br>La respuesta correcta es: <br>");  
     document.write(sig1*uno+opera+pre+sig2*dos+pos+'='+resultado);   
   }  
 }  
 genera();