Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Realizar la prueba de escritorio a la siguiente función recursiva con los valores 21 y 35 para
a y b respectivamente. Realizar paso a paso y decir que hace.
Primera iteración:
Segunda Iteración:
a<-21
b<-14
Si (21 = 0) entonces
Retornar a
Sino
Si (14 = 0) entonces
Retornar b
Sino
Si (21 >= 14) entonces
Retornar Misterio (a - b, b)
Retornar Misterio (21- 14, 14)
Retornar Misterio (7, 14)
Sino
Retornar Misterio (a, b - a) (no se cumple)
Fin Si
Fin Si
Fin Si
Tercera Iteración:
a<-7
b<-14
Si (7 = 0) entonces
Retornar a
Sino
Si (14 = 0) entonces
Retornar b
Sino
Si (7 >= 14) entonces
Retornar Misterio (a - b, b) (no se cumple)
Sino
Retornar Misterio (a, b - a)
Retornar Misterio (7, 14 - 7)
Retornar Misterio (7, 7)
Fin Si
Fin Si
Fin Si
Cuarta Iteración:
a<-7
b<-7
Si (7 = 0) entonces
Retornar a
Sino
Si (7 = 0) entonces
Retornar b
Sino
Si (7 >= 7) entonces
Retornar Misterio (a - b, b)
Retornar Misterio (7- 7, 7)
Retornar Misterio (0, 7)
Sino
Retornar Misterio (a, b - a)
Fin Si
Fin Si
Fin Si
Quinta Iteración:
a<-0
b<-7
Si (b = 0) entonces
Retornar a
Sino
Si (a = 0) entonces
Retornar b
Retornar 7
Sino
Si (7 >= 7) entonces
Retornar Misterio (a - b, b)
Sino
Retornar Misterio (a, b - a)
Fin Si
Fin Si
Fin Si
FinMisterio
Valor de retorno<-7
Rpta. El objetivo que tiene esta función recursiva es calcular el MCD (Máximo Común Divisor)
Punto #2.
Entero Función PromedioPares (Entero n, Entero v [])
Si (n<0) Entonces
Retornar 0
Sino
Si v[n]MOD(2) = 0 entonces
S<- s + v[n]
c<- c + 1
Retornar PromedioPares(n-1, v)
Sino
Retornar PromedioPares(n-1, v)
FinSi
FinSi
Si (n=0) entonces
prom<-s/c
Retornar prom
FinSi
FinPromedioPares
Punto #3.
Pila recursiva:
ÇPunto #4.
Primera Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=9
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (9 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[9] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (9-1, vect, 4)
Retornar contar (8, vect, 4)
Fin Si
Fin Si
Fin Contar
Segunda Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=8
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (8 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[8] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (8-1, vect, 4)
Retornar contar (7, vect, 4)
Fin Si
Fin Si
Fin Contar
Tercera Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=7
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (7 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[7] = 4) entonces
Retornar 1 + contar (n-1, vect, k)
Retornar 1 + contar (7-1, vect, 4)
Retornar 1 + contar (6, vect, 4)
Sino
Retornar contar (n-1, vect, k) (no se cumple)
Fin Si
Fin Si
Fin Contar
Cuarta Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=6
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (6 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[6] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (6-1, vect, 4)
Retornar contar (5, vect, 4)
Fin Si
Fin Si
Fin Contar
Quinta Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=5
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (5 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[5] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (5-1, vect, 4)
Retornar contar (4, vect, 4)
Fin Si
Fin Si
Fin Contar
Sexta Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=4
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (4 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[4] = 4) entonces
Retornar 1 + contar (n-1, vect, k)
Retornar 1 + contar (4-1, vect, 4)
Retornar 1 + contar (3, vect, 4)
Sino
Retornar contar (n-1, vect, k) (no se cumple)
Fin Si
Fin Si
Fin Contar
Séptima Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=3
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (3 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[3] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (3-1, vect, 4)
Retornar contar (2, vect, 4)
Fin Si
Fin Si
Fin Contar
Octava Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=2
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (2 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[2] = 4) entonces
Retornar 1 + contar (n-1, vect, k) (no se cumple)
Sino
Retornar contar (n-1, vect, k)
Retornar contar (2-1, vect, 4)
Retornar contar (1, vect, 4)
Fin Si
Fin Si
Fin Contar
Novena Iteración:
A = [4, 7,12 ,4 ,8 ,12 ,4 ,5 ,8]
k=4
n=1
Entero Función Contar (Entero n, Entero vect [], Entero k)
Si (1 < 0) entonces
Retornar 0 (no se cumple)
Sino
Si (vect[1] = 4) entonces
Retornar 1 + contar (n-1, vect, k)
Retornar 1 + contar (1-1, vect, 4)
Retornar 1 + contar (0, vect, 4)
Sino
Retornar contar (n-1, vect, k) (no se cumple)
Fin Si
Fin Si
Fin Contar
Valor retornado<- 3