Ese código no debería de funcionar. El for esta mal declarado en varios casos. Pero se puede arreglar.
Función algoritmo:Linea 3: Hay que arreglar la linea...
var invertido, numero;
Es un simple declarador de variables para que se puedan usar a posteriori.
Linea 4: Esta bien. Solo decimos que la variable
numero es un Integer (integro) del valor del campo
"numero".
Linea 5: Esta mal. Debería de ser un for.
for (invertido=0; numero; numero = Math.floor(numero/10)){
Aquí decimos
invertido empieza siendo un 0 y el for debe continuar mientras
numero sea positivo.. además
numero sera
numero entre 10 en cada iterraccion.
El Math.floor previene un Infinity o un NaN.
https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/Math/floorLinea 6: Esta Mal.
invertido se añade a si mismo el valor de invertido multiplicado por 10 más el modulo (resta de división) de
numero entre 10.
Debería ser que invertido sea invertido por 10 + el modulo de numero entre 10. O sea se:
invertido = (invertido*10) + (numero%10);
Linea 7: Esta mal. Supongo que quiere que el valor de
valorde pasee a ser el actual
valorde.
document.formulario.valorde.value = valorde;
De todos modos, no entiendo que pinta valorde en toda la función. No hace falta en ningún momento.
Linea 8: Esta bien. Solo asigna el valor de
invertido al campo
invertido
La función corregida debería ser:
function algoritmo() {
var invertido, numero;
numero = parseInt(document.formulario.numero.value);
for(invertido=0; numero; numero = Math.floor(numero/10)){
invertido = (invertido*10) + (numero%10);
}
document.formulario.invertido.value = invertido;
return invertido;
}
Y del HTML puedes quitar de la linea 16 (incluida) a la linea 19 (incluida) ya que no hace falta en ningún momento.
En fin, el que lo ha escrito creo que no tenia ni idea de javascript o lo hizo de tal modo para joder.
Dicho esto, tienes muchos modos de invertir un numero.
Podrias hacerlo tomando el numero como un string.
function algoritmo() {
var numero = document.formulario.numero.value.toString();
var invertido = '';
for(var i = numero.length-1; i >= 0; --i){
invertido += numero[i];
}
document.formulario.invertido.value = invertido;
return invertido;
}
O la más sencilla... convertirlo en array y reverse y convertir en numero de nuevo.
function algoritmo() {
var numero = document.formulario.numero.value.toString();
var invertido = numero.split('').reverse().join('');
document.formulario.invertido.value = invertido;
return invertido;
}
Saludos