domingo, 30 de octubre de 2016

getElementById

Veamos un ejemplo de como usar getElemenById. Pulsando sobre los botones podemos cambiar el color del texto.


El código HTML+JS es el siguiente.

 <!DOCTYPE html>  
 <html>  
 <head>  
  <title>getElementById example</title>  
  <script>  
  function changeColor(newColor) {  
   var elem = document.getElementById("miTexto");  
   elem.style.color = newColor;  
  }  
  </script>  
 </head>  
 <body>  
  <p id="miTexto">Don't like mondays</p>  
  <button onclick="changeColor('blue');">blue</button>  
  <button onclick="changeColor('red');">red</button>  
 </body>  
 </html>  

Puedes ver el programa funcionando en el siguiente enlace.

Sumar dos números en Javascript

Si los dos números vienen recogidos por las variables x e y, al poner x+y lo que hará es concatenar sus valores. Si los valores son x=2, y=3, el resultado de sumar x+y no será 5, será 23, ya que concatena. Para evitar ese problema se ha de usar:
  • parseInt  si se trata de números enteros
  • parseFloat si se trata de números con decimales
En nuestro caso para sumar x e y usaremos la siguiente expresión.

    suma=parseFloat(x)+parseFloat(y)


Veamos el código para realizar la suma de dos números.

 <!DOCTYPE html>  
 <html>  
 <body>  
 <h1>Sumar dos números</h1>  
 <p>Por favor, introduce dos números:</p>  
 <input id="num1"><br>  
 <input id="num2">  
 <button type="button" onclick="myFunction()">Sumar</button>  
 <p id="sumando"></p>  
 <script>  
 function myFunction() {  
   var x,y,suma,text;  
   x = document.getElementById("num1").value;  
   y = document.getElementById("num2").value;  
   if (isNaN(x) || isNaN(y)) {  
     text = "Es necesarios introducir dos números válidos";  
   } else {  
     //si no ponemos parseFloat concatenaría x con y  
     suma=parseFloat(x)+parseFloat(y);  
     text= suma;  
   }  
   document.getElementById("sumando").innerHTML = text;  
 }  
 </script>  
 </body>  
 </html>  

Podemos ver el resultado en el siguiente enlace.

domingo, 23 de octubre de 2016

Máximo común divisor y mínimo común múltiplo

Vamos a calcular el Máximo común dividor (MCD) y el mínimo común múltiplo de dos números.
Utilizaremos el algoritmo de Euclides.
También vamos a descomponer en factores primos los números proporcionados por el usuario.

El código HTML es el siguiente.

 <!DOCTYPE html>   
  <html>   
  <head>   
  <meta charset="UTF-8">   
  <title>Máximo común divisor y mímino común múltiplo</title>   
  <script type="text/javascript" src="mcdmcm.js">   
  </script>   
  </head>   
  <body>   
  <p>Si los dos números son a y b se puede comprobar que:<br>  
  a × b = MCD × mcm</p>   
  </body>   
  </html>  


El código Javascript es el siguiente.

 document.write('<h1>Máximo común divisor (MCD) y mínimo comúm múltiplo (mcm)</h1>');  
 document.write('<h2>Dados dos números calcular el MCD y el mcm</h2>');  
 do{  
   var n1 = parseInt(prompt("Dime el primer número (de 1 a un billón)", 300));  
 }while(isNaN(n1) || n1> 1000000000000 || n1< 1 || n1%1!==0);  
 do{  
   var n2 = parseInt(prompt("Dime el segundo número (de 1 a un billón)", 33880));  
 }while(isNaN(n2) || n2> 1000000000000 || n2< 1 || n2%1!==0);  
 if (n2>n1){                  //queremos que n1 sea el mayor  
   var z=n1;  
   n1=n2;  
   n2=z  
 }  
 var a=n1;  
 var b=n2;  
 for (var j=1;j<=2;j++){  
   if (j===1){  
     n=n1;  
   } else if (j===2) {  
     n=n2;  
   }  
   var texto=n+' = ';  
   var contador=0;  
   while (n%2===0) {  
     n=n/2;  
     contador++;  
   }  
   if (contador>1){  
     texto += 2+"<sup>"+contador+"</sup> × ";  
   } else if (contador===1){  
     texto += "2 × ";  
   }  
   for (var i=3;i<=n;i=i+2){  
     contador=0;  
     while (n%i===0) {  
       n=n/i;  
       contador++;  
     }  
     if (contador>1){  
       texto += i+"<sup>"+contador+"</sup> × ";  
     } else if (contador===1){  
       texto += i+" × ";  
     }  
   }  
   texto += 1;  
   document.write(texto+'<br>');  
 }  
 do {                          //algoritmo de Euclides  
   var mcd=n2;  
   var resto=n1%n2;  
   n1=n2;  
   n2=resto;  
 } while (resto!=0);  
 document.write('El MCD es '+mcd+'<br>');  
 document.write('El mcm es '+a*b/mcd+'<br>');  
 if (mcd>1){  
   document.write('La fracción se puede simplificar:<br>'+a+' / '+b+' = '+a/mcd+' / '+b/mcd);  
 } else if (mcd===1){  
   document.write('La fracción siguiente no se puede simplificar:<br>'+a+' / '+b);  
 }  

Y este es el link para poder probar el programa:



miércoles, 12 de octubre de 2016

Divisible

He hecho un programa en el cual tu metes un número y te da todos los divisores del numero.
Es un código sencillo porque son mates pero muy útil.

El codigo
 <!DOCTYPE html>  
 <html>  
 <head>  
 <script>  
 document.write("<h1>Calculo de los divisores de un número</h1>");  
 do{  
   var n = prompt("Dime el número que quieras (de 1 a un millón)", 144);  
 }while(isNaN(n) || n> 1000000 || n< 1 || n%1!==0);  
 document.write("Los divisores de "+n+" son:<br>");  
 for (var i=1;i<=n;i++){  
      if (n%i===0){  
           document.write(i+'<br>');  
      }  
 }  
 </script>  
 </head>  
 </html>