Una función recursiva es aquella que se llama a sí misma dentro de su propio código. Cuando se invoca por primera vez, se carga una copia del código en la memoria, y si luego se vuelve a invocar dentro de una condición, se carga otra copia dejando pendiente la primera. Este proceso se repite mientras se cumpla la condición de llamada recursiva.
1. Es cuando una función se invoca (llama) a si misma desde algún punto,
obviamente desde adentro de su código .
Cuando una función recursiva es invocada por primera vez , karel carga
en su memoria una copia del código (como cualquier otra función), lo
interesante inicia cuando, en base a la evaluación de una condición, dentro
de un If (condición), ocurre la invocación a la misma función recursiva
“funcionRecursivaX()”, en ese momento karel carga en memoria otra copia
de la nueva función invocada, y la copia anterior la deja pendiente de ser
terminada, pero karel se acuerda de que dejo pendiente la primera.
Este proceso de llamarse a sí misma, cargar otra copia de la función
recursiva, y dejar pendiente de terminar la función actual; se estaría
repitiendo, mientras se cumpla la condición, desde la cual se esta haciendo
la llamada recursiva.
Es cuando una función se invoca (llama) a si misma desde algún punto,
obviamente desde adentro de su código .
Cuando una función recursiva es invocada por primera vez , karel carga
en su memoria una copia del código (como cualquier otra función), lo
interesante inicia cuando, en base a la evaluación de una condición, dentro
de un If (condición), ocurre la invocación a la misma función recursiva
“funcionRecursivaX()”, en ese momento karel carga en memoria otra copia
de la nueva función invocada, y la copia anterior la deja pendiente de ser
terminada, pero karel se acuerda de que dejo pendiente la primera.
Este proceso de llamarse a sí misma, cargar otra copia de la función
recursiva, y dejar pendiente de terminar la función actual; se estaría
repitiendo, mientras se cumpla la condición, desde la cual se esta haciendo
la llamada recursiva.
ACADEMIA DE TIC’S 2
2. Mundo inicial
Mundo final
ACADEMIA DE TIC’S 2
El robot regresa a
esta línea en cada
una de las copias que
dejo pendiente de
procesar
El robot regresa a
esta línea en cada
una de las copias que
dejo pendiente de
procesar
3. Descripción de la tarea del Robot
Karel: se encuentra en dirección Este,
en el límite Suroeste del mundo, y a lo
largo de una distancia no conocida, se
encuentran bardas que deberá brincar
y contar. Su tarea termina al encontrar
un trompo que le indicara el fin de su
camino. Para terminar su tarea, debe
dejar, en la misma esquina donde
encontró un trompo, la cantidad de
trompos necesarios para que indique
el número de bardas que encontró en
su trayectoria.
Posición y dirección inicial de Robot
Karel: : inicia en dirección al Este, en la
esquina más al Suroeste de la ciudad,
y con suficientes trompos en la
mochila , para cumplir su tarea.
Descripción de la tarea del Robot
Karel: se encuentra en dirección Este,
en el límite Suroeste del mundo, y a lo
largo de una distancia no conocida, se
encuentran bardas que deberá brincar
y contar. Su tarea termina al encontrar
un trompo que le indicara el fin de su
camino. Para terminar su tarea, debe
dejar, en la misma esquina donde
encontró un trompo, la cantidad de
trompos necesarios para que indique
el número de bardas que encontró en
su trayectoria.
Posición y dirección inicial de Robot
Karel: : inicia en dirección al Este, en la
esquina más al Suroeste de la ciudad,
y con suficientes trompos en la
mochila , para cumplir su tarea. ACADEMIA DE TIC’S 2
4. Estas funciones permiten incrementar (succ) y decrementar (pred) el argumento
usado al momento de llamar a otra función o nueva tarea.
La función succ (parámetro) le incrementa en uno el valor del parámetro al
momento de llamar a otra función.
La función pred (parámetro) le decrementa en uno, al momento de llamar a
otra función.
Estas dos funciones, succ( p ), y pred( p ), tienen su utilidad cada vez que se hace
una llamada a una función recursiva, obviamente, desde adentro de la misma
función recursiva.
El uso de la función succ(p), en repetidas llamadas de una función recursiva,
permite ir contando cada llamada recursiva, al usar un argumento “p” en la
función succ(p), este valor del argumento “p”, puede ser usado para distintos
propósitos en la función recursiva.
Estas funciones permiten incrementar (succ) y decrementar (pred) el argumento
usado al momento de llamar a otra función o nueva tarea.
La función succ (parámetro) le incrementa en uno el valor del parámetro al
momento de llamar a otra función.
La función pred (parámetro) le decrementa en uno, al momento de llamar a
otra función.
Estas dos funciones, succ( p ), y pred( p ), tienen su utilidad cada vez que se hace
una llamada a una función recursiva, obviamente, desde adentro de la misma
función recursiva.
El uso de la función succ(p), en repetidas llamadas de una función recursiva,
permite ir contando cada llamada recursiva, al usar un argumento “p” en la
función succ(p), este valor del argumento “p”, puede ser usado para distintos
propósitos en la función recursiva.
ACADEMIA DE TIC’S 2