Recursividad. 2 Son funciones que se llaman a sí mismas. Requisitos: – Deben retornar un valor. – Deben tener expresiones en las que se llaman a sí mismas:

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura selectiva anidada
Programación Interactiva Fundamentos de Programación
Programación II Recursividad
Estructuras de decisión en C
Ejemplo de Programa C++
Funciones y recursividad
MANUAL EXPRESS DE C J.M.sevilla.
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Estructuras de control
FUNCIONES EN C.
INFORMATICA I Funciones CLASE 13.
ESTRUCTURA DEL LENGUAJE C
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
Ejercicios de funciones
¿Qué es un algoritmo? “(del árabe al-Khowârizmî, sobrenombre del célebre matemático árabe Mohámed ben Musa). Conjunto ordenado y finito de operaciones.
SOBRECARGA DE FUNCIONES
Cont. Arbol Binario de Búsqueda
Curso Práctica 3 1 Funciones CONTENIDO Consideraciones sobre funciones Estructura de un programa en C Uso de funciones Paso de parámetros Punteros.
Recursión Se dice que un método es recursivo si forma parte de sí mismo o se define en función de sí mismo. La recursión es un medio particularmente poderoso.
Simulación de la recursión Estructuras de datos. Llamada y regreso de una función Al llamar a una función se realizan los siguientes tres pasos: 1. Transferencia.
Funciones en lenguaje C
Funciones y procedimientos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programación I Teoría VI: Recursividad
FUNCIONES Y PROCEDIMIENTOS
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Estructuras de Decisión Múltiple
Semana 5 Subprogramas..
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
Arreglos.
Repaso/resumen 1.lectura/escritura y asignación 2.funciones 3.selección de instrucciones (if-else) 4.repetición de instrucciones (while) 5.recursión 6.operadores/instrucciones.
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Introducción al análisis de algoritmos
Material de apoyo Unidad 4 Estructura de datos
Análisis de algoritmos
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Recursividad.
Sección 2-4 Estructuras de Control de Decisión Expresiones Lógicas.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Funciones Definidas por el Programador
Estructuras de Repetición (Hacer-Mientras)
Estructuras de control Resolución de problemas y algoritmos.
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Estructuras de Repetición (Hacer-Mientras)
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -10-
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Pelando la cebolla 1. Aquí discutiremos lo necesario del lenguaje necesario para implementar una metodología que llamo “pelando la cebolla”. Permite abordar.
ALGORITMOS Y ESTRUCTURAS DE DATOS Operaciones sobre cadenas de caracteres y Funciones LIA. Suei Chong Sol.
LENGUAJE “C” Programación.
ESTRUCTURAS SELECTIVAS
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Unidad V Recursión. Objetivos del Aprendizaje Explicar el concepto de recursión. Discutir las diferentes condiciones que deben ser satisfechas para que.
Estructuras de Decisión
Simulación de un AFD Conversión de un AFND a un AFD.
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Figure: Algoritmos.
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Recursividad.
Transcripción de la presentación:

Recursividad

2 Son funciones que se llaman a sí mismas. Requisitos: – Deben retornar un valor. – Deben tener expresiones en las que se llaman a sí mismas: “ciclo activo”. – Deben incluir, en una sentencia de selección, una opción en la cual terminen la ejecución y no se llamen a sí mismas: “caso base”. – Si no poseen un opción que les permita terminar su ejecución, se producirán llamadas hasta agotar los recursos de memoria del sistema. – Si se alcanza el “caso base” en una llamada del “ciclo activo”, entonces se inicia el “ciclo pasivo” o de retorno.

3 Recursividad código C tipo_de_retorno nombre_funcion(tipo argumentos){ if ( caso_base ) return valor_base; else { return nombre_funcion(argumentos'); }

4 Recursividad (ejemplo) Obtener el factorial de un número Casos base: - el factorial de cero es uno - factorial de uno es uno - factorial de un número negativo lo hacemos cero. Ciclo activo: - llamar a partir del número en forma descendente hasta llegar al caso base.

5 Recursividad (Ejemplo cont.) #include int factorial(int n){ if (n<0) return 0; if (n==0) return 1; else if (n==1) return 1; else return n*factorial(n-1); } int main(){ int x,fac; printf("Ingrese un número para calcularle el factorial = “); scanf("%d",&x); fac=factorial(x); printf("%d!=%d\n",x,fac); return 0; }

main(){ int x = 3; fac = factorial(x); 6 Simulación: ciclo activo

main(){ int x = 3; fac = factorial(x); 7 Simulación: ciclo activo factorial(3);

main(){ int x = 3; fac = factorial(x); 8 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1);

main(){ int x = 3; fac = factorial(x); 9 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2);

main(){ int x = 3; fac = factorial(x); 10 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1);

main(){ int x = 3; fac = factorial(x); 11 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1);

main(){ int x = 3; fac = factorial(x); 12 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1); factorial(1){ if (1==0) return 1; else if (1==1) return 1;

main(){ int x = 3; fac = factorial(x); 13 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; return 1

main(){ int x = 3; fac = factorial(x); 14 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; return 1 Caso Base alcanzado!!

main(){ int x = 3; fac = factorial(x); 15 Simulación: ciclo activo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*factorial(1); factorial(1){ if (1==0) return 1; else if (1==1) return 1; return 1

main(){ int x = 3; fac = factorial(x); 16 Simulación: ciclo pasivo factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2 ); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2*factorial(2-1); 2*1

main(){ int x = 3; fac = factorial(x); 17 Simulación: ciclo pasivo factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*factorial(2); factorial(2){ if (2==0) return 1; else if (2==1) return 1; else return 2;

main(){ int x = 3; fac = factorial(x); 18 Simulación: ciclo pasivo factoria l(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 3*factorial(3-1); 3*2

main(){ int x = 3; fac = factorial(x); 19 Simulación: ciclo pasivo factorial(3); factorial(3){ if (3==0) return 1; else if (3==1) return 1; else return 6;

main(){ int x = 3; fac = factorial(x); 20 Simulación: ciclo pasivo 6;