Sie sind auf Seite 1von 4

Introduccin a la Programacin Prctico Recursividad

1. Escribir una funcin recursiva para calcular el factorial de un nmero n FUNCIN Factorial(n) -> entero VAR resultado: Entero si (n<2) entonces resultado = 1 sino resultado = n * Factorial(n-1) FinSI retornar (resultado) fin 2. Escribir una procedimiento recursivo para verificar si un arreglo dado es palndromo Funcin palindromo (palabra arreglo[N], i,j:entero) -> entero var resultado<- entero si ((i>=j) )entonces resultado<- 1 sino si palabra[i] == palabra[j] entonces resultado<- palindromo (palabra, i+1,j-1) sino resultado<-0 finsi finsi retornar (resultado) Fin 3. Escribir un funcin recursiva para descomponer un nmero entero en unidades, decenas, centenas . etc procedimiento descompone(n) si (n/10==0) entonces mostrar n sino mostrar n%10 descompone(n/10) finsi fin

4. Modificar el ej. Anterior para que la salida sea inversa: , centenas, decenas, unidades, procedimiento descompone(n) si (n/10==0) entonces mostrar n sino descompone(n/10) mostrar n%10 finsi fin 5. Escribir una funcin recursiva que devuelva la cantidad de dgitos de un nmero entero. funcion cant_digitos(n) -> entero var resultado: Entero si (n/10==0) entonces resultado = 1 sino resultado = 1 + cant_digitos(n/10) finsi retornar (resultado) fin 6. Defina una funcin recursiva que retorne la suma de un arreglo de nmeros de 100 posiciones. funcin suma_arr(a:arreglo[100],pos:entero)-> enetro var resultado<-entero si(pos=0) entonces resultado <-a[pos] sino resultado <- a[pos]+suma_arr(a,cant-1)) finsi retornar(resultado) fin 7. Escribir una funcin recursiva que calcule z*v, mediante sumas sucesivas, con z , v enteros. funcin multi (z,v:entero)-> enetro var resultado<-entero si(v=1) entonces resultado <-z ///pos posicin 0..99

sino resultado <- z +multi(z,v-1) finsi retornar(resultado) fin 8. Construir una funcin recursiva que calcule ab mediante multiplicaciones sucesivas. funcin pot (z,v:entero)-> enetro var resultado<-entero si (v=0) entonces resultado<-1 sino si(v=1) entonces resultado <-z sino resultado <- z * pot(z,v-1) finsi fin_si retornar(resultado) fin 9. Escribir una funcin recursiva que halle la suma de los primeros "n" nmeros naturales. funcin suma(n:entero) -> enetro si(n<=1) entonces retornar 1 sino retornar (n+suma(n-1)); finsi fin 10. Dado el siguiente procedimiento analice que hace Procedimiento verquehace(P: Pila) int v si !P.vacia() v = P.tope() P.pop() verquehace(P) mostrar(v) fin si fin proc

Var T: Pila T.push(1) T.push(2) T.push(3) T.push(4) T.push(5) verquehace(T)

Das könnte Ihnen auch gefallen