Título: Estoy perdido con la recursividad Publicado por: Caster en 3 Octubre 2012, 19:35 pm Pues estoy leyendo sobre la recursividad y estoy totalmente perdido, no entiendo nada, dice que las llamadas a la funcion no se realizan en el momento de la llamada, sino que se acumulan hasta cumpla una condicion, y despues se ejecutan en orden inverso, es decir, que la primera llamada que se hizo es la ultima en ejecutarse?
Alguien amable podria explicarme esto de una forma algo mas facil, porque estoy muy perdido. Gracias EDITO: a ver, algo creo que voy entendiendo, de ejemplo me trae este codigo: Código
Antes de nada, no he compilado el codigo, voy a fiarme del libro, A ver si me explico y lo he entendido bien, este programa se supone que escribe el texto introducido al reves, ejemplo: Citar hola - aloh Cuaado tu introduces una letra, por ejemplo a, no la escribe, sino que vuelve a llamar a la funcion, es decir entra en bucle ejecutando la linea: Código hasta que la condicion del if se cumpla, entonces como segun el libro el orden de las llamdas es inverso, la primera letra que introduje sera la ultima en mostrarse, y asi con el resto de caracteres, estoy en lo cierto? Espero haberlo entendido bien, porque es el ultimo punto de este tema y estoy deseando pasar de tema, pero no sin antes haberlo entendido todo perfectamente. Gracias de nuevo Título: Re: Estoy perdido con la recursividad Publicado por: Stakewinner00 en 3 Octubre 2012, 20:23 pm si basicamente es eso.
No se mucho de recursividad, pero algo e echo. Yo tampoco lo entendia mucho hasta que practique con ello. Yo directamente ya no me leo libros de programación sino que intento programar ysi algo no lo se lo busco por google y luego lo implemento y ya se me queda grabado Título: Re: Estoy perdido con la recursividad Publicado por: leosansan en 3 Octubre 2012, 22:11 pm Citar Te dejo como ejemplo la sucesión de fibonacci, que empieza con 1 y 1 y cada número es la suma de los dos anteriores: 1,1,2,3,5,8,13,21,34,55,.....: Código
Otro ejemplo más simple que calcula el factorial: Código PD:tú código no funciona. Saludos!. Título: Re: Estoy perdido con la recursividad Publicado por: rir3760 en 5 Octubre 2012, 17:32 pm Antes de nada, no he compilado el codigo, voy a fiarme del libro Al parecer al copiar el programa agregaste (de forma accidental, por supuesto) algunos errores o bien el libro no es de calidad. ¿Que libro estas leyendo?Hay varias partes a modificar en la función "inverso": * Faltan los paréntesis en la llamada a "getchar". * El tipo de retorno de "getchar" es "int". * Si "getchar" por alguna razón falla a partir de ese momento retorna "EOF" y como este valor es distinto de '\n' se entra en una recursion infinita. * No es necesaria la sentencia "return;" al final de la función, esta retorna al encontrarse su llave de cierre '}'. El programa con las correcciones: Código
Un saludo Título: Re: Estoy perdido con la recursividad Publicado por: Caster en 5 Octubre 2012, 19:19 pm Gracias leosansan por los ejemplos, el de calcular el factorial es el primer ejemplo que viene en mi libro.
Al parecer al copiar el programa agregaste (de forma accidental, por supuesto) algunos errores o bien el libro no es de calidad. ¿Que libro estas leyendo? Si, ha sido error mio al copiar el programa, aqui esta sin ningun fallo, exactamente como en el libro:Código
Lo he compilado y funciona perfectamente,gracias por las correcciones, creo que ya he entendido mas o menos la recursividad y ademas en mi libro viene como apunte que no se suele utilizar mucho, y que problemas que se puede solucionar con la recursividad se puede hacer de manera mas facil de otras maneras, asi que tampoco me voy a parar mucho en ella. Saludos |