Ing. Betty Suárez Torres

Slides:



Advertisements
Presentaciones similares
Estructuras de control Secuenciales y selectivas
Advertisements

ESTRUCTURAS DE CONTROL
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
Estructura selectiva anidada
Programación II Recursividad
Estructuras de decisión en 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
Fundamentos de la Programación Estructurada
Funciones. Programación, Algoritmos y Estructuras de Datos.
EJERCICIOS DE PROGRAMACION
INFORMATICA I Funciones CLASE 13.
ESTRUCTURA DEL LENGUAJE C
Programación Estructurada
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.
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
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.
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.
Funciones y procedimientos
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programación I Teoría VI: Recursividad
Programa “Coordenadas” Ing. Arturo Díaz Vargas Departamento de Sistemas División de Ciencias Básicas e Ingeniería UNIVERSIDAD AUTONOMA METROPOLITANA.
Archivos Programación.
Semana 5 Subprogramas..
Cadenas y apuntadores Programación.
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Recursión en programación
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.
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Archivos.
3.  Recursividad.

Lenguaje C Ing. Sonia Alexandra Pinzón Nuñez
Estructura de Datos y Algoritmos
Programación en Lenguaje C
Informática Tema 5 - Estructuras de Control Estructuras de Repetición.
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.
Recurrencia Programación II de enero de 2009.
Computación I Primer Semestre 2006 Capítulo IV Ciclos y Colecciones (con un sabor a algoritmos)
Recursividad.
Recursividad Estructuras de datos.
Estructuras de Control.
Estructuras de Decisión Simples y Dobles
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Funciones Curso Propedéutico Maestría en Ingeniería Electrónica.
Estructura de Datos En C++
Funciones Definidas por el Programador
Tema 11: Programación dinámica
Estructuras de control Resolución de problemas y algoritmos.
Conceptos Avanzados de Programación
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.
ESTRUCTURAS SELECTIVAS
Unidad V Recursión. Objetivos del Aprendizaje Explicar el concepto de recursión. Discutir las diferentes condiciones que deben ser satisfechas para que.
Conalep Coacalco Algoritmos Recursivos
Inducción y Recursión Matemáticas Discretas L. Enrique Sucar INAOE.
 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.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
U11: Recursividad Otra manera de hacer bucles Dicen algunos pedagogos que conceptualmente mas sencilla.
Solución a Ecuaciones de Recurrencia Dr. Rogelio Dávila Pérez División de Posgrado Universidad Autónoma de Guadalajara
Recursividad.
Aplicaciones de RECURSIVIDAD
Recursividad Estructura de datos 2005.
Recursividad 1 Análisis de algoritmos. Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más.
Transcripción de la presentación:

Ing. Betty Suárez Torres RECURSIVIDAD Ing. Betty Suárez Torres

CONCEPTOS BÁSICOS La recursividad es la propiedad que poseen determinadas funciones por la cual pueden llamarse a sí mismas. Toda función/método recursivo debe tener dos partes: Una parte de terminación en la que se deja de hacer llamadas (caso base) y que constituye la condición de terminación de la función, permitiendo así que no se produzca una recursión infinita. Y una llamada recursiva con sus propios parámetros, en los que éstos sufrirán alguna variación. Cuando una función se llama así misma, se denomina función recursiva y a la llamada a sí misma es llamada recursiva. Puede ser utilizada como alternativa a la repetición o estructura repetitiva.

EJEMPLO FACTORIAL 5! 5! Devuelve 5! = 5 * 24 = 120 5*4! 5*4! El factorial de un número entero postiivo n (n!) es el producto: n * (n-1) * (n-1) * … * 1 Si el número es menor o igual a 1, la función factorial devuelve 1 EJEMPLO FACTORIAL 5! 5! Devuelve 5! = 5 * 24 = 120 5*4! 5*4! Devuelve 4! = 4 * 6 = 24 4*3! 4*3! Devuelve 3! = 3 * 2 = 6 3*2! 3*2! Devuelve 2! = 2 * 1 = 2 2*1! 2*1! Devuelve 1 1 1

FACTORIAL C++ Factorial long Factorial (int n) { if (n<=1) return 1; else return (n*Factorial(n-1)); }

EJEMPLO FIBONACCI Serie de Fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89 …. Definida de manera recursiva: Fibonacci(0) = 0 Fibonacci(1) = 1 Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2) = 0

Fibonacci(3) return Fibonacci(2) + Fibonacci(1) return Fibonacci(1) Fibonacci(0) return 1 + return 1 return 0

Fib(6) = Fib(4) + Fib(5)= Fib(2) + Fib(3) + Fib(5)= 7 + 0 + 1 = 8

EJEMPLO RECURSIÓN MÚLTIPLE : SUCESIÓN DE FIBONACCI La ecuación que describe la sucesión de Fibonacci (fib) es: fib(0) = 0 fib(1) = 1 fib(n) = fib(n - 1) + fib(n - 2) long fib(long n) { if ((n==0) || (n==1)) return (n) ; else return(fib(n-1)+fib(n-2)); }

EJEMPLO: MULTIPLICACION DE NÚMEROS NATURALES El producto de dos números es : A SI B=1 A * (B – 1) + A SI B>1 Ejemplo: Evaluar 6 * 3: 6 * 3 = 6 * 2 + 6 = 6 * 1 + 6 = 6 + 6 + 6 = 18

MÁXIMO COMÚN DIVISOR int MCD(int M, int N); int MCD(int M, int N){ int v; if(M%N==0) v=N; else v = MCD(N,M%N); return v; } void main(){ int M,N; cout<<"Ingresar primer número:"; cin>>M; cin>>N; cout<<"El máximo común divisor es: "<<MCD(M,N); getch(); }

RECURSIVIDAD INDIRECTA #include <stdio.h> int par(int n) ; int impar(int n); int main (void){ int n; do{ printf ("\nEntero > 0: " ) ;scanf ("%d", &n) ; } while (n<=0); if (par(n)) printf("El numero %d es par”,n); else return 0; printf("El numero %d es impar”,n) ; } int par(int n){ if (n == 0) return 1; else return impar(n-1); } int impar(int n){ return 0; return par(n-1); }

EJEMPLO: TORRES DE HANOI Se tienen 3 palos de madera, que llamaremos palo izquierdo, central y derecho. El palo izquierdo tiene ensartados un montón de discos concéntricos de tamaño decreciente, de manera que el disco mayor está abajo y el menor arriba. • El problema consiste en mover los discos del palo izquierdo al derecho respetando las siguientes reglas: - Sólo se puede mover un disco cada vez. - No se puede poner un disco encima de otro más pequeño. - Después de un movimiento todos los discos han de estar en alguno de los tres palos. Leer por teclado un valor N, e imprimir la secuencia de pasos para resolver el problema.

SOLUCIÓN RECURSIVA • Solución recursiva a las Torres de Hanoi Si n=1 mueva el disco de A a C y parar Mueva los n-1 discos superiores de A a B, con C auxiliar Mueva los discos restantes de A a C Mueva los n-1 discos de B a C, usando A como auxiliar

Planteamos un procedimiento recursivo con cuatro parámetros: - El número de discos a mover. - El palo origen desde donde moverlos. - El palo destino hacia el que moverlos. - El palo auxiliar. ALGORITMO Mueve(E N n; E Tpalos origen,auxiliar,destino) INICIO SI n == 1 ENTONCES Mueve un disco del palo origen al destino SINO Mueve(n-1,origen,destino,auxiliar) Mueve(n-1,auxiliar,origen,destino) FINSI FIN