You are on page 1of 4

RECURSIVIDAD

Es una tcnica de programacin importante. Se utiliza para realizar una llamada a una funcin desde la misma funcin. PROPIEDADES DE LA RECURSIVIDAD Que no genere una secuencia infinita de llamadas Una funcin recursiva debe definirse en trminos que no impliquen a la funcin al menos en un argumento o grupo de argumentos. Debe existir una salida de la secuencia de llamadas recursivas Una funcin recursiva no necesita llamarse a si misma de manera directa. En su lugar puede !acerlo de manera directa.

QUE SE NECESITA PARA QUE HAYA RECURSIVIDAD Estado inicial Estado final "lamada recursiva Que la llamada tienda al estado final

EJEMPLOS DE FUNCIONES RECURSIVAS #. funcion suma $int x% int &' ( ) * x + &, Si $) - #.' Escriba #. , Sino Escriba c, suma $c% x', / 0. funcion factorial $int n' ( Si $n * * .' factorial * #, sino factorial * n 1 factorial $n2#', fin si /

3. funcion fib $int n' ( Si $n * * .'

fib * ., sino si $n * *#' fib * #, sino si $n-#' fib * fib $n2#' + fib$n20', fin si fin si fin si / 4. funcion exp $int x% int n' ( Si $n-.' exp * x 1 exp $x% n2#', sino exp * #, fin si / 5. 6acer un programa recursivo que sume los elementos de un vector funcion sumar $v78% int n% int i' ( Si $ i * * n2#' return v7i8, sino return v7i8 + sumar $v% n% i+#', fin si / 9. 6acer un programa recursivo que muestre los elementos de un vector de forma inversa funcion mostrar $v78% int n% int i' ( Si $i-*.' Escriba v7i8, mostrar $v78% n% i2#', fin si /

EJERCICIOS #. 6allar el numero ma&or en un vector 0. !allar el numero n de la serie #% 3% :% #5% 3#% ;

3. Si una edificacin por nivel emplea con un ladrillo & se va formando de esta manera

4. Dada una matriz decir si un numero se encuentra o no 5. Dada una pila duplicarla DESARROLLO #. funcion ma&or$v78% int n% int i' ( Si $i * * n2#' return v7i8, sino ma& * ma&or$v% n% i+#' si v7i8-ma&, return v7i8, sino return ma&, fin si fin si / 0. funcion serie $int n' ( Si $n * * .' serie * ., sino serie * 0 < $n2#' + serie $n2#', fin si 3. funcion nivel $int n' ( Si $n * * #' nivel * #, sino nivel * 0 1 nivel $n2#', fin si / 4. funcion buscar $=7878% int i% int >% int x% int n% int m' ( Si $=7i87>8 * *x' return true,

sino si $i * * n2# ?? > * *m2#' return false, sino si $>@m' return buscar$=% i% >+#% x% n%m' sino return buscar $=% i+#% .% x%n%m' fin si fin si fin si / 5. funcion duplicar$ Aila p% Aila otra' ( Si $p.vacia$'' return otra, sino otra.insertar $p.sacar$'', duplicar $p%otra', fin si / funcion auxiliar $Aila p% Aila otra' ( Si $otra.vacia$'' return p, sino p.insertar$otra.obtener$'', p.insertar$otra.obtener$'', otra.sacar$', auxiliar $p%otra', fin si /

You might also like