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.

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Métodos y parámetros.
Complejidad Computacional
Complejidad Computacional
Complejidad Computacional
ESTRUCTURA DE DATOS Unidad 01 RECURSIVIDAD.
Estructura de Datos Unidad 4. Recursividad Dra. María Lucía Barrón Estrada Enero-Junio 2007.
Programación Interactiva Fundamentos de Programación
Programación II Recursividad
Elementos básicos del Lenguaje
FUNCIONES EN C.
Genéricos en Java Jaime Ramírez, Ángel Lucas González
UNIVERSIDAD LATINA (UNILA)
SENTENCIA EN LENGUAJE C++
Algoritmo y Estructura de Datos I
Introducción a la Computación (7ma Semana) Lunes 16 de Abril del 2007
Introducción a la Computación (8va Semana) Lunes 23 de Abril del 2007
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2006 – II (8va Semana) Lunes 25 de Setiembre del 2006 Juan José Montero Román.
Facultad de Ingeniería y Arquitectura Introducción a la Computación 2006 – II (7ma Semana) Lunes 18 de Setiembre del 2006 Juan José Montero Román.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Método en Java.
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones y procedimientos
Programación I Teoría VI: Recursividad
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Java. Objeto Es la instancia de una clase. Cada objeto se crea utilizando la palabra reservada new. Un objeto es conocido como una instancia. Ejemplo.
Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
0. Desarrollo de Programas: técnica del refinamiento.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Creación de Aplicaciones
Tema 6: Clases Antonio J. Sierra.
Recursividad.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Semana 5 Subprogramas..
Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Funciones y Procedimientos(Pseudocódigo)
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.
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
3.  Recursividad.

Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
Computación II Repaso de java Karina Figueroa Mora.
Material de apoyo Unidad 4 Estructura de datos
Análisis de algoritmos
Computación I Primer Semestre 2006 Capítulo IV Ciclos y Colecciones (con un sabor a algoritmos)
Recursividad.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Recursividad Un objeto se dice que es recursivo si él mismo forma parte de su definición. Ejemplos de objetos recursivos: Una locomotora es un tren Un.
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.
Ing. Betty Suárez Torres
Entrada y Salida ES.leerChar (); ES.leerEntero (); ES.leerEnteroLargo (); ES.leerFloat (); ES.leerDouble (); System.out.print System.out.println.
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 DECISION MULTIPLE
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.
INS-204 Fundamentos de Programacion notas de clase, objetivo, programar en Python con nivel medio de destreza.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Recursividad.
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:

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 en las matemáticas

Algunos ejemplos conocidos: Números naturales: 1 es un número natural el siguiente de un número natural es un número natural La función factorial, n! 0! = 1 si n > 0 entonces n! = n * ( n - 1 )! Recursión

Factorial de n, es igual al producto de n factores desde 1 hasta n. factorial n = n * factorial (n – 1) static int factorialNumero (int n) { int result; if (n == 0) { return 1; } result = n * factorialNumero (n - 1); return result; } Llamada recursiva Recursión

class Factorial { public static void main (String arg[]) { int x; System.out.println("A qué número desea calcularle el factorial "); x = CTeclado.ReadInt(); System.out.println(factorialNumero (x)); } static int factorialNumero (int n) { int result; if (n == 0) { return 1; } result = n * factorialNumero (n - 1); return result; } Recursión

Veamos un ejemplo, calculando el factorial de 3, utilizando el método fact. static int factorialNumero (int n) { int result; if (n = = 1) { return 1; } result = n * factorialNumero (n - 1); return result; } factorialNumero (3) result = 3 * factorialNumero (2) return result factorialNumero (2) = result = 2 * factorialNumero (1) return result factorialNumero (1)= return 1 result = 2 * 1 = 2 return 2 result = 3 * 2 = 6 return 6 return 1 Recursión

static int factorialNumero (int n) { if (n == 0) return 1; return ( n * factorialNumero (n - 1)); } Otra manera de plantear este método recursivo. Calculemos el factorial de 3 utilizando el método fact factorialNumero (3) factorialNumero (3) = return 3 * facorialNumero (2) factorialNumero (2) = return 2 * factorialNumero (1) factorialNumero (1) = return 1 fact (2) = 2 * 1 = 2fact (3) = 3 * 2 = 6 Recursión

Si un método se llama así mismo dentro de su definición, se dice que es directamente recursivo. Si un método m contiene una invocación a otro método n, que a su vez contiene una invocación a m, se dice que m es indirectamente recursivo. Un método recursivo debe disponer de una o varias instrucciones selectivas donde establecer la condición o condiciones de salida. Al escribir métodos recursivos se debe tener una sentencia if para obligar al método a volver sin que la llamada recursiva sea ejecutada. Recursión

Otro ejemplo clásico es la serie de fibonacci fibonacci (n) = fibonacci (n – 1) + fibonacci (n – 2) fibonacci (0) = 0 fibonacci (1) = 1 Ejemplo: fibonacci (3) = fibonacci (2) + fibonacci (1) fibonacci (3) = fibonacci (1) + fibonacci (0) + 1 fibonacci (3) = = 2 Recursión

static int fiboSerie (int n) { if (n == 0) return 0; else if (n == 1) return 1; else return (fiboSerie (n - 1) + fiboSerie (n - 2)); } Llamada recursiva Método de fibonacci: Recursión

Ejercicio: Hacer un método recursivo que reciba un entero N como parámetro e imprima los número de uno en uno, desde N hasta 0. static void mostrarSerie (int n) { if (n == 0) System.out.print (n + " "); else { System.out.print (n + " "); mostrarSerie (n - 1); } Recursión

Ejercicio: Hacer un método recursivo que reciba un entero N como parámetro e imprima los número de uno en uno, desde 0 hasta N. static void mostrarSerie (int n) { if (n == 0) System.out.print (n + " "); else { mostrarSerie (n - 1); System.out.print (n + " "); } Recursión

Hacer un programa que dado un número N, genere el siguiente histograma. Utilizar métodos recursivos. Recursión

Recursión