Foros del Web » Programando para Internet » Javascript »

Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Estas en el tema de Nose que estoy haciendo mal... una ayudita en este pedazo de código plz en el foro de Javascript en Foros del Web. Hola, estoy intentando implementar este pedazo de código de javascript y no me resulta... En fin, lo que intento hacer es mediante una llamada recursiva ...
  #1 (permalink)  
Antiguo 12/12/2010, 09:48
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Pregunta Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Hola, estoy intentando implementar este pedazo de código de javascript y no me resulta...

En fin, lo que intento hacer es mediante una llamada recursiva poder tener el resultado del factorial de un número ingresado por el usuario, el cual se mota del formulario (este nose si necesariamente se deba poner del formulario)...

Dejo el código:
Código Javascript:
Ver original
  1. <body>
  2. <head>
  3.  
  4. <SCRIPT LANGUAGE="JavaScript">
  5. function factorial(numero) {
  6.    if (numero > 0) {
  7.      return numero * (factorial(numero - 1))
  8.    } else {
  9.       return 1;
  10.    }
  11. }
  12.  
  13. </SCRIPT>
  14.  
  15. </head>
  16.  
  17. <body>
  18.  
  19. <div align="center">
  20. <p>Ver el factorial de un n&uacute;mero de manera recursiva</p>
  21.  
  22. <form id="form" name="factorial" method="post" action="" onsubmit="factorial(this);">
  23.     <table>    
  24.    
  25.     <tr align="left"><td>N&uacute;meros </td> <td><input name="factorial" type="text" id="recursivo" size="15" /></td></tr>  
  26.    
  27.     <tr><td> </td><td><br/><input type="submit"  value=" Ver Resultado " />
  28.             </td></tr>
  29.  </table>              
  30. </form>
  31.  
  32. </div>
  33.  
  34.  
  35. </body>


Bueno la verdad que nose si lo estoy haciendo bien. Por favor díganme como lo debo hacer...

Espero sus respuestas

Saludos
  #2 (permalink)  
Antiguo 12/12/2010, 09:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

cuado se envia un form (submit), se espera enviar la data del mismo al servidor, en tu caso no quieres eso, pero al usar onsubmit puedes cancelar ese envío al retornar false, el problema es que lo estás implementando mal, una opción seria:

onsubmit="alert(factorial(this.elements['factorial'].value)); return false;"

alert para mostrarlo como un mensaje
this.elements, porque this devuelve el formulario actual, pero ten en cuenta que el formulario puede tener n elementos, debes indicar cual y que propiedad

PD: recuerda que los métodos recursivos pueden minar completamente la memoria, en el caso del factorial puede hacerse con ciclos también
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/12/2010, 10:02
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Cita:
Iniciado por maycolalvarez Ver Mensaje
cuado se envia un form (submit), se espera enviar la data del mismo al servidor, en tu caso no quieres eso, pero al usar onsubmit puedes cancelar ese envío al retornar false, el problema es que lo estás implementando mal, una opción seria:

onsubmit="alert(factorial(this.elements['factorial'].value)); return false;"

alert para mostrarlo como un mensaje
this.elements, porque this devuelve el formulario actual, pero ten en cuenta que el formulario puede tener n elementos, debes indicar cual y que propiedad

PD: recuerda que los métodos recursivos pueden minar completamente la memoria, en el caso del factorial puede hacerse con ciclos también
Implemente el pedazo de código que escribiste... pero no me resulta...
No te entiendo en la parte que dices: "pero ten en cuenta que el formulario puede tener n elementos, debes indicar cual y que propiedad"...

Donde debo indicarlo??
  #4 (permalink)  
Antiguo 12/12/2010, 10:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

donde indico this.elements, además de que tienes una función, un formulario y hasta un input con el mismo nombre factorial, en algunos navegadores suele dificultarle al interprete de js tener tantos elementos con el mismo nombre, intenta probar esto y analiza las diferencias de tu código contra este regularmente normalizado y estandarizado

Código Javascript:
Ver original
  1. <body>
  2. <head>
  3.  
  4. <script type="text/javascript">
  5. function getFactorial(numero) { //camelCase para funciones y el prefijo "get" para indicar su uso
  6.    if (numero > 0) {
  7.      return numero * (getFactorial(numero - 1))
  8.    } else {
  9.       return 1;
  10.    }
  11. }
  12.  
  13. </script>
  14.  
  15. </head>
  16.  
  17. <body>
  18.  
  19. <div align="center">
  20. <p>Ver el factorial de un n&uacute;mero de manera recursiva</p>
  21.  
  22. <form id="form" name="form_factorial" method="post" action="" onsubmit="alert(getFactorial(parseInt(this.elements['input_factorial'].value))); return false;">
  23.     <table>    
  24.    
  25.     <tr align="left"><td>N&uacute;meros </td> <td><input name="input_factorial" type="text" id="recursivo" size="15" /></td></tr>  
  26.    
  27.     <tr><td> </td><td><br/><input type="submit"  value=" Ver Resultado " />
  28.             </td></tr>
  29.  </table>              
  30. </form>
  31.  
  32. </div>
  33.  
  34.  
  35. </body>

notas:
-codigo HTML todo en minúsculas, incluido los tags <script></script>
-parseInt para convertir string en enteros
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 12/12/2010, 10:53
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Cita:
Iniciado por maycolalvarez Ver Mensaje
donde indico this.elements, además de que tienes una función, un formulario y hasta un input con el mismo nombre factorial, en algunos navegadores suele dificultarle al interprete de js tener tantos elementos con el mismo nombre, intenta probar esto y analiza las diferencias de tu código contra este regularmente normalizado y estandarizado



notas:
-codigo HTML todo en minúsculas, incluido los tags <script></script>
-parseInt para convertir string en enteros
Wow muchas gracias !!
no esperaba que lo hicieras
Me queda mucho por aprender de este lenguaje
gracias por la ayuda, me sirvió de mucho y me servirá para seguir haciendo mi trabajo..

saludos!
  #6 (permalink)  
Antiguo 12/12/2010, 10:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Cita:
Iniciado por ras_chalo Ver Mensaje
Wow muchas gracias !!
no esperaba que lo hicieras
Me queda mucho por aprender de este lenguaje
gracias por la ayuda, me sirvió de mucho y me servirá para seguir haciendo mi trabajo..

saludos!
al contrario, tu hiciste bastante y solo necesitabas un empujón, te recomiendo que leas este manual, suerte y que aprendas mucho
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 12/12/2010, 12:17
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Cita:
Iniciado por maycolalvarez Ver Mensaje
cuado se envia un form (submit), se espera enviar la data del mismo al servidor, en tu caso no quieres eso, pero al usar onsubmit puedes cancelar ese envío al retornar false, el problema es que lo estás implementando mal, una opción seria:

onsubmit="alert(factorial(this.elements['factorial'].value)); return false;"

alert para mostrarlo como un mensaje
this.elements, porque this devuelve el formulario actual, pero ten en cuenta que el formulario puede tener n elementos, debes indicar cual y que propiedad

PD: recuerda que los métodos recursivos pueden minar completamente la memoria, en el caso del factorial puede hacerse con ciclos también
¿No sería más fácil así?
Código HTML:
Ver original
  1. <form action="javascript:alert(factorial(this.elements['factorial'].value))">
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 12/12/2010, 14:35
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Nose que estoy haciendo mal... una ayudita en este pedazo de código plz

Cita:
Iniciado por _cronos2 Ver Mensaje
¿No sería más fácil así?
Código HTML:
Ver original
  1. <form action="javascript:alert(factorial(this.elements['factorial'].value))">
Saludos (:
hay muchas formas, todo depende de como lo desees implementar
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: mal, nose
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:55.