Recursividad. Introducción a la programación
|
|
- Raquel Valenzuela Soriano
- hace 5 años
- Vistas:
Transcripción
1 Recursividad Introducción a la programación I semestre, 2016
2 Recursividad Las reglas fundamentales para resolver problemas recursivos: Definir el caso base (solución trivial) Cuál es la solución que no necesita procesamiento adicional? Definir llamadas recursivas (solución de problema más pequeño) Aportar una respuesta parcial (salida) y reducir el tamaño o la complejidad del problema modificando los argumentos con la intensión de que tiendan al caso base. Me recursive pointing CC SA Flickr
3 Afinando detalles Volvamos a la función num_digitos(numero) y analicemos de forma crítica e ingenieril: Qué problemas tiene en términos de eficiencia? Qué problemas hay con las validaciones (restricciones)? Ei Ingeniero! Cómo podemos afinar estos detalles? Bad Boss CC NC-SA Flickr
4 Recursividad eficiente Las reglas fundamentales para resolver problemas recursivos de forma eficiente: La validación de las restricciones generales o casos especiales pueden/deben ser trabajados en la función principal (no recursiva). Este es el punto de entrada a nuestro problema, es ahí donde nos aseguraremos que los datos son correctos. El trabajo pesado puede/debe ser resuelto en una función auxiliar (recursiva) que será invocada por la principal. Este es el núcleo, cuore o corazón de la solución
5 def num_digitos2(numero): #se evalúa solo una vez if not isinstance(numero,int): return 'Error01' elif numero == 0: #caso especial... return 1 else: return num_digitos2_aux(abs(numero)) def num_digitos2_aux(numero): if(numero == 0): #caso base return 0 else: #función recursiva con argumentos 'mas pequeños' return 1 + num_digitos2_aux(numero //10)
6 Cómo se ejecuta num_digitos2? >>> num_digitos2(-4925) num_digitos2_aux(4925) # abs(-4925) = num_digitos2_aux(492) # 4925 // 10 = num_digitos2_aux(49) # 492 // 10 = num_digitos2_aux(4) # 49 // 10 = num_digitos2_aux(0) # 4 // 10 = # numero = 0 >>> 4 >>> num_digitos2(0) >>> 1 # caso especial
7 Finite staircase CC BY-SA Flickr
8 Consejos... Identifique el o los casos más sencillos a resolver. (casos base) Cual es la condición que debería llevarnos al caso base? Qué debe retornar ese caso? los resultados (return) serán resultados finales o parciales? Busque la forma de hacer el problema más pequeño Hasta ahora los problemas nos pedían reducir el número quitándole dígitos, pero no siempre será así. Identifique casos de prueba que incluyan a los casos sencillos y otros complejos y evalúe utilizando papel y lápiz qué es lo que está haciendo Python. Comente la función num_digitos siguiendo estos consejos: casos base, resultados parciales, finales y donde finaliza el programa.
9 Sucesión de Fibonacci Leonardo de Pisa Inicia con f(0) = 0 y f(1) = 1, y a partir de ahí cada elemento es la suma de los dos anteriores. De forma formal, para todo n en los Naturales. fibonacci(n) fibonacci(0), si n = 0 0 fibonacci(1), si n = 1 1 fibonacci(n), si n >= 2 fibonacci( n - 1) + fibonacci( n - 2) Encontrar: Entradas, salidas, restricciones. Caso base, soluciones parciales, finales, casos de prueba. Hagan una corrida del programa en papel, prestando especial atención a la pila de llamadas.
10 Recursive Road Sign CC BY-SA Flickr
11 Ejercicios 4. Hacer una función que cuente las veces que aparece un dígito en un número: >>> cuenta_digito(8486, 8) 2 >>> cuenta_digito(8486, 0) 0 5. La función Factorial se define como: Haga una función recursiva para resolver el factorial de cualquier número entero positivo. >>> factorial(0) 1 >>>factorial(1) 1 >>>factorial(7) 5040
12 Ejercicios 6. construya un número nuevo con los dígitos pares de un número recibido como parámetro de la función: >>> pares(486) 486 >>> pares(175043) 4 Piense en el algoritmo y trate de descomponer el problema en otros pequeños Cuales serían? Recuerde hacer validaciones: en este caso el número que recibe la función debe ser entero. En caso de que no se cumpla entonces se debe retornar el mensaje 'Error'
13 Ejercicios 7. Un número es palíndromo si puede leerse igual de izquierda a derecha o de derecha a izquierda, escriba una función para determinar esta propiedad. Sintaxis: palindromo(numero) salida donde: numero es numero entero positivo y salida debe ser un valor booleano: True o False. >>> palindromo(38583) >>> palindromo( ) True False >>> palindromo(2442) >>> palindromo(101) True 'Error' >>> palindromo(4) >>> palindromo(101) True True
14 Las presentaciones para el curso IC-1800: "Introducción a la Programación" por Ing. En Computación Alajuela se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa Rica *La licencia de la presentación no cubre las imágenes utilizadas*
15 Recursividad Introducción a la programación I semestre, 2016
16 Recursividad Las reglas fundamentales para resolver problemas recursivos: Definir el caso base (solución trivial) Cuál es la solución que no necesita procesamiento adicional? Definir llamadas recursivas (solución de problema más pequeño) Aportar una respuesta parcial (salida) y reducir el tamaño o la complejidad del problema modificando los argumentos con la intensión de que tiendan al caso base. Me recursive pointing CC SA Flickr
17 Afinando detalles Volvamos a la función num_digitos(numero) y analicemos de forma crítica e ingenieril: Qué problemas tiene en términos de eficiencia? Qué problemas hay con las validaciones (restricciones)? Ei Ingeniero! Cómo podemos afinar estos detalles? Bad Boss CC NC-SA Flickr Que problemas hay en términos de eficiencia: - siempre se validan las restricciones, (ineficiente en tiempo y consumo de recursos) pues con solo que validemos 1 vez, YA sabemos con toda certeza que los datos de entrada seguirán siendo válidos.
18 Recursividad eficiente Las reglas fundamentales para resolver problemas recursivos de forma eficiente: La validación de las restricciones generales o casos especiales pueden/deben ser trabajados en la función principal (no recursiva). Este es el punto de entrada a nuestro problema, es ahí donde nos aseguraremos que los datos son correctos. El trabajo pesado puede/debe ser resuelto en una función auxiliar (recursiva) que será invocada por la principal. Este es el núcleo, cuore o corazón de la solución
19 def num_digitos2(numero): #se evalúa solo una vez if not isinstance(numero,int): return 'Error01' elif numero == 0: #caso especial... return 1 else: return num_digitos2_aux(abs(numero)) def num_digitos2_aux(numero): if(numero == 0): #caso base return 0 else: #función recursiva con argumentos 'mas pequeños' return 1 + num_digitos2_aux(numero //10)
20 Cómo se ejecuta num_digitos2? >>> num_digitos2(-4925) num_digitos2_aux(4925) # abs(-4925) = num_digitos2_aux(492) # 4925 // 10 = num_digitos2_aux(49) # 492 // 10 = num_digitos2_aux(4) # 49 // 10 = num_digitos2_aux(0) # 4 // 10 = # numero = 0 >>> 4 >>> num_digitos2(0) >>> 1 # caso especial
21 Finite staircase CC BY-SA Flickr El camino para comprender recursión es largo, inclusive puede verse empinado, con unas gradas eternas, pero habrá una caso base que sea subir una grada con el pie derecho y comenzar a caminar con el izquerdo.
22 Consejos... Identifique el o los casos más sencillos a resolver. (casos base) Cual es la condición que debería llevarnos al caso base? Qué debe retornar ese caso? los resultados (return) serán resultados finales o parciales? Busque la forma de hacer el problema más pequeño Hasta ahora los problemas nos pedían reducir el número quitándole dígitos, pero no siempre será así. Identifique casos de prueba que incluyan a los casos sencillos y otros complejos y evalúe utilizando papel y lápiz qué es lo que está haciendo Python. Comente la función num_digitos siguiendo estos consejos: casos base, resultados parciales, finales y donde finaliza el programa. Potencias: X (elevado a la )3 = x * x * x - X elevado a la 1 es X -X0 Hagamos un algoritmo para entender la recursividad: - caso base: entendemos recursividad - sino seguir haciendo práctica
23 Sucesión de Fibonacci Leonardo de Pisa Inicia con f(0) = 0 y f(1) = 1, y a partir de ahí cada elemento es la suma de los dos anteriores. De forma formal, para todo n en los Naturales. fibonacci(n) fibonacci(0), si n = 0 0 fibonacci(1), si n = 1 1 fibonacci(n), si n >= 2 fibonacci( n - 1) + fibonacci( n - 2) Encontrar: Entradas, salidas, restricciones. Caso base, soluciones parciales, finales, casos de prueba. Hagan una corrida del programa en papel, prestando especial atención a la pila de llamadas. Acá el video: Nature by NumberskkGeOWYOFoA.mp4
24 Recursive Road Sign CC BY-SA Flickr Cuidado: camino estrecho... la recursividad tiende a ser un embudo para mucha gente al aprender a programar
25 Ejercicios 4. Hacer una función que cuente las veces que aparece un dígito en un número: >>> cuenta_digito(8486, 8) 2 >>> cuenta_digito(8486, 0) 0 5. La función Factorial se define como: Haga una función recursiva para resolver el factorial de cualquier número entero positivo. >>> factorial(0) 1 >>>factorial(1) 1 >>>factorial(7) 5040
26 Ejercicios 6. construya un número nuevo con los dígitos pares de un número recibido como parámetro de la función: >>> pares(486) 486 >>> pares(175043) 4 Piense en el algoritmo y trate de descomponer el problema en otros pequeños Cuales serían? Recuerde hacer validaciones: en este caso el número que recibe la función debe ser entero. En caso de que no se cumpla entonces se debe retornar el mensaje 'Error' Acá hay dos problemas 1. dado un dígito saber si es par o no. (que se podría generalizar para saber si un número es par o no). es_par() un dígito //2, si el residuo es cero quierec decir que es divisible exacto entre dos 2. crear el nuevo número, utilizando un factor
27 Ejercicios 7. Un número es palíndromo si puede leerse igual de izquierda a derecha o de derecha a izquierda, escriba una función para determinar esta propiedad. Sintaxis: palindromo(numero) salida donde: numero es numero entero positivo y salida debe ser un valor booleano: True o False. >>> palindromo(38583) >>> palindromo( ) True False >>> palindromo(2442) >>> palindromo(101) True 'Error' >>> palindromo(4) >>> palindromo(101) True True
28 Las presentaciones para el curso IC-1800: "Introducción a la Programación" por Ing. En Computación Alajuela se distribuyen bajo una Licencia Creative Commons Atribución-Compartir Igual 3.0 Costa Rica *La licencia de la presentación no cubre las imágenes utilizadas*
Recursividad. Introducción a la programación
Recursividad Introducción a la programación I semestre, 2017 Recursividad Las reglas fundamentales para resolver problemas recursivos: Definir el caso base (solución trivial) Cuál es la solución que no
Recursividad. Introducción a la programación
Recursividad Introducción a la programación I semestre, 2016 Concepto general Un concepto que está definido utilizando para este propósito el propio concepto que se está definiendo. Es un proceso de repetición
Recursividad... un análisis posterior. Aurelio Sanabria Introducción a la programación
Recursividad... un análisis posterior Aurelio Sanabria Introducción a la programación II semestre, 2016 Construyendo Programas Buscar soluciones a problemas (pensar en un algoritmo) requiere de una etapa
Primeros Pasos en Python 3 Parte II. Introducción a la programación
Primeros Pasos en Python 3 Parte II Introducción a la programación I semestre, 2016 1 Estructuras de Control Cómo se hace cuando hay restricciones que validar? los flujos alternos? las acciones repetitivas?
Recursividad... un análisis posterior. Jaime Gutiérrez Alfaro Introducción a la programación
Recursividad... un análisis posterior Jaime Gutiérrez Alfaro Introducción a la programación I semestre, 2015 Agenda Introducción Cálculos por aproximación Tipos de recursión Concepto de error Depuración
Recursividad de cola. Introducción a la programación
Recursividad de cola Introducción a la programación I semestre, 2017 La recursividad......nos permite modelar la solución de muchos tipos de problemas. nos ayuda a desarrollar la capacidad de abstracción.
Programación 2. Lección 3. Introducción a la recursividad
Programación 2 Lección 3. Introducción a la recursividad 1 1. Definiciones recursivas Número natural y número entero Múltiplos de 7 Secuencia de datos Factorial de un número natural Sucesión de Fibonacci
Introducción a Sistemas numéricos. Taller de programación
Introducción a Sistemas numéricos Taller de programación I semestre, 2016 Sistemas numéricos Son un conjunto de reglas y símbolos que permiten construir representaciones numéricas. Los símbolos son repetidos
Primeros Pasos en Python 3
Primeros Pasos en Python 3 Introducción a la programación I semestre, 2016 1 Escribir Programas en Python Un programador debe utilizar expresiones, funciones y métodos de forma combinada para obtener soluciones
Funciones recursivas
Introducción a la Computación Funciones recursivas Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 08/04/2014 E. Mocskos (UBA CONICET) Clase 9: Funciones Recursivas
Funciones recursivas
Introducción a la Computación Funciones recursivas Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 13/09/2017 E. Mocskos (UBA CONICET) Funciones Recursivas
Secuencias Calculadas
Secuencias Calculadas Estructuras de Iteración y Recursividad Prof. Hilda Contreras Programación 1 hildac.programacion1@gmail.com Secuencias Calculadas Se aplican a los problemas donde los elementos de
Estructuras de datos, vectores y matrices. Introducción a la programación
Estructuras de datos, vectores y matrices Introducción a la programación I semestre, 2016 Estructuras de datos Una estructura de datos es una forma de organizar conjuntos de datos con el objetivo de facilitar
Qué es la recursividad?
Recursividad 1 Ejemplo Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Esta muñeca, también contiene otra muñeca dentro.
Metodología de la Programación II. Recursividad
Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.
Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
Recursión. Capítulo 4
Recursión Capítulo 4 Introducción La recursión o recursividad es un concepto amplio, con muchas variantes, y difícil de precisar con pocas palabras.. Actividades Cotidianas; fotografía donde se observa
Sistemas numéricos - otras representaciones - Taller de programación
Sistemas numéricos - otras representaciones - Taller de programación I semestre, 2016 Temas Otros sistemas numéricos BCD, Gray Representación de otros tipos de datos Codificación de la Información Tipos
Programación I Recursividad.
Programación I Recursividad http://proguno.unsl.edu.ar proguno@unsl.edu.ar Recursividad Técnica de resolución de problemas particulares. La definición de un concepto es recursiva si el concepto es definido
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación
Programación II Recursividad Dr. Mario Rossainz López
5. RECURSIVIDAD 5.1. Introducción La recursividad es una técnica en la que una función o método se hace llamadas a sí misma en el proceso de la realización de sus tareas. La recursividad da al programador
Sistemas numéricos -aritmética- Taller de programación
Sistemas numéricos -aritmética- Taller de programación I semestre, 2016 Aritmética en sistemas numéricos Temas Precisión En computadoras todas las operaciones se dan entre números binarios con tamaño finito,
Recursividad Definición
Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como
Análisis de algoritmos. Recursividad
Análisis de algoritmos Recursividad 1 Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Ésta muñeca, también contiene
dit UPM Tema 1: Introducción /recursión Análisis y diseño de software José A. Mañas
Análisis y diseño de software dit UPM Tema 1: Introducción /recursión José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 13.2.2018 índice concepto: recursión forma de resolver un problema
Tema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Tema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 7 1 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Utilizar la sintaxis de las funciones
Tema: Funciones, Procedimientos y Recursividad en C#.
Programación I, Guía 6 1 Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
RECURSIVIDAD. Prof. Ing. M.Sc. Fulbia Torres
ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS RECURSIVIDAD Definición. Estado base. Estado general. Ejemplos. Ejercicios. DEFINICIÓN Es una técnica de programación muy potente que permite
Tema 4.- Recursión e iteración
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Ejercicios sobre recursividad
Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función
Tema: Funciones, Procedimientos y Recursividad en C#.
2 Programación I Programación I. Guía 6 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la
Tema: Programación Dinámica.
1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Programación Dinámica. Objetivos Específicos Definir brevemente el concepto de programación dinámica. Interpretar un algoritmo
Complejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
Sistemas numéricos -números negativos- Taller de programación
Sistemas numéricos -números negativos- Taller de programación I semestre, 2016 Números negativos Temas Números binarios negativos Problema: cómo representar números negativos en un mecanismo computacional?
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Tema 7: Recursividad
Tema 7: Recursividad Objetivos: en este tema estudiaremos funciones recursivas; esto es, funciones que se invocan a sí mismas. Estas funciones son equivalentes a estructuras tipo bucle pero permiten especificar
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
Recursividad. Facultad de Ciencias de la Computación. Juan Carlos Conde R. Object-Oriented Programming I
Recursividad Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Escritura de Funciones 3 Tipos de Recursión 1 / 23 Contenido 1 Introducción
Conceptos básicos. IC-1800 Introducción a la programación. I semestre,
Conceptos básicos IC-1800 Introducción a la programación I semestre, 2017 1 Definiciones Básicas Hardware: componentes físicos. tangibles Software: componentes lógicos. no tangibles DVDs de Ubuntu, Kubuntu
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERÍA EN COMPUTACIÓN REPORTE DE INVESTIGACIÓN PROGRAMA FUNCIÓN FACTORIAL ALGORITMO PROGRAMA FUNCION FIBONACCI ALGORITMO
Introducción a Python. Cecilia Manzino
Características del lenguaje Es un lenguaje de programación multiparadigma, soporta la programación orientada a objetos, imperativa y, en menor medida, funcional. Es un lenguaje multiplataforma, puede
Conceptos básicos. IC-1800 Introducción a la programación. I semestre,
Conceptos básicos IC-1800 Introducción a la programación I semestre, 2016 1 Definiciones Básicas Hardware: componentes físicos. tangibles Software: componentes lógicos. no tangibles DVDs de Ubuntu, Kubuntu
Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Práctica 5.- Recursividad
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Programación Avanzada en Java Prim. 2009 Práctica 5.- Recursividad Datos de la práctica Fecha 6 de marzo de 2009 Conceptos
La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados.
RECURSIVIDAD La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN ÍNDICE Definición Conceptos básicos Ejemplos recursivos Recursión mútua Recursión e iteración DEFINICIÓN Técnica
Trabajo Práctico Nº 06
Tema: Recursividad 1. Dado el siguiente método: static int puzle (int base, int limite) if (base > limite) return -1; if (base = = limite) return base * puzle(base+1,limite); 1.1 Identificar: a) el caso(s)
Subrutinas. Subrutinas. Erwin Meza Vega
Subrutinas Erwin Meza Vega Outline 1 Introducción 2 Especicación de subrutinas 3 Funciones booleanas 4 Parámetros 5 Recursividad 6 Ejercicios Introducción Programación divide y vencerás Cuando la solución
Para entender la recursividad primero tenemos que entender la recursividad
Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre
Para el Segundo Parcial
Para el Segundo Parcial Ejercicios Del libro Introducción a la Programación con Python realice los siguientes ejercicios en cada da una de las secciones indicadas. Tiras de Caracteres Sección 5.1.6 167,
Estructura de Datos. Recursividad. Primer Semestre, Indice
Estructura de Datos Recursividad Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2 Indice Introducción Definición Condiciones para la Recursividad Tipos de Recursividad Aplicaciones Ejemplo
TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote RECURSIVIDAD Y SOBRECARGA DE METODOS
RECURSIVIDAD Y SOBRECARGA DE METODOS RECURSIVIDAD Un método es recursivo cuando se llama a si mismo ya sea directamente e indirectamente. Si un método recursivo se invoca con un caso base, simplemente
Dra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los
ESTRUCTURA DE DATOS: Tema 3. Recursividad
ESTRUCTURA DE DATOS: Tema 3. Recursividad Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Directa e indirecta
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
Recursividad. 1.1 Concepto de Recursividad. Objetivos. Metodología de la Programación II Entender el concepto de recursividad.
Objetivos Metodología de la Programación II Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Recursividad Comprender la ejecución de algoritmos recursivos.
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 6 Nombre: Funciones Contextualización La implementación de funciones en los programas disminuye las líneas de código y estructuran mejor
4.1 Definición. Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. Un objeto (problemas, estructuras de datos) es
Recursividad 4.1 Definición. Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. Un objeto (problemas, estructuras de datos) es recursivo si forma parte de sí mismo o interviene
Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1
Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes
Recursividad. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Recursividad Dept. Ciencias de la Computación e I.A. Universidad de Granada Índice Introducción a la recursión Recursividad frente a iteración Eficiencia de los algoritmos recursivos Ejemplos y ejercicios
Tema 06: Recursividad
Tema 06: Recursividad M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Recursión Recursividad Programación
Capítulo 4. Control de flujo. Continuar
Capítulo 4 Control de flujo Continuar Introducción El control de flujo permite encausar a la computadora sobre la ruta que debe seguir al momento de la ejecución de un programa, para ello se apoya en las
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
UNIVERSIDAD AUTÓNOMA CHAPINGO DPTO. DE PREPARATORIA AGRÍCOLA ÁREA DE FÍSICA RECURSIÓN. Guillermo Becerra Córdova
UNIVERSIDAD AUTÓNOMA CHAPINGO DPTO. DE PREPARATORIA AGRÍCOLA ÁREA DE FÍSICA RECURSIÓN Guillermo Becerra Córdova E-mail: gllrmbecerra@yahoo.com OBJETIVOS: Este trabajo tiene por objetivo mostrar las características
Recursión. Recursión continuación
Recursión Recursión continuación Recursión Temas que veremos hoy Estructuras de control iterativas, repetitivas y la recursión. Ejemplos recursivos Búsqueda lineal Eficiencia y recursión Conclusiones Recursión
Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales
Informática General 2018 Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales Sentencias JavaScript typeof Operador para comprobar el tipo de dato. Ej.: var mivariable = 22; document.write("el
PROGRAMACION ESTRUCTURADA: Tema 3. Funciones
PROGRAMACION ESTRUCTURADA: Tema 3. Funciones Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Definiciones
UNIDAD 7: PROGRAMACIÓN EN R
UNIDAD 7: PROGRAMACIÓN EN R Técnicas Inteligentes en Bioinformática Master en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial Francisco J. Romero
CodeHood uno. función. Un algoritmo para determinar si un número real es mayor que 50 podría ser:
CodeHood uno función Un algoritmo para determinar si un número real es mayor que 50 podría ser: # si un número real es mayor que 50 x = 107 si x > 50: escribe 1 La sentencia si permite verificar si una
Sección III CRITERIOS DE DIVISIBILIDAD I (Criterios Habituales)
Sección III CRITERIOS DE I (Criterios Habituales) Las reglas de divisibilidad son criterios que sirven para saber si un número es divisible por otro sin necesidad de realizar la división. Llamaremos criterio
RECURRENCIA RECURSIÓN o RECURSIVIDAD
RECURRENCIA RECURSIÓN o RECURSIVIDAD 1 Definición Definición de diccionario Recursividad: Véase Recursividad 2 Definición Técnica que para resolver problemas basándose en la propia definición del mismo
Programación Dinámica
Certamen Nacional OIA 2016 OIA 2016 1 / 19 La sucesión de Fibonacci La sucesión de Fibonacci se define como: Los primeros dos términos son 1. Desde ahí, cada término es la suma de los dos anteriores. Los
Un calculadora avanzada... y algo más!
INFORMÁTICA, GRUPO D Un calculadora avanzada... y algo más! Vamos a familiarizarnos con el entorno interactivo de Python. Vamos a construir expresiones aritméticas y a guardar los resultados en variables
Manual rápido para evaluación de series en Python
Manual rápido para evaluación de series en Python Breve introducción Python es un lenguaje de programación interpretado con fines científicos, de educación y para hacer programas de uso rápido. Es la base
Fundamentos de la programación
Fundamentos de la programación 10 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Concepto de recursión
Programación Estructurada en ANSI C
Programación Estructurada en ANSI C Sesión 2A Rafael Menéndez de Llano Rozas DEPARTAMENTO DE INFORMÁTICA Y ELECTRÓNICA Este material se publica bajo licencia: Creative Commons BY-NC-SA 4.0 Índice 1. Introducción.
ESTRUCTURA DE DATOS: Tema 3. Recursividad
ESTRUCTURA DE DATOS: Tema 3. Recursividad Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Directa e indirecta
import math # Importa la libreria math, que permite utilizar operaciones y funciones matematicas
UNIVERSIDAD DE COSTA RICA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA PROGRAMACIÓN BAJO PLATAFORMAS ABIERTAS IE-0117 I CICLO 2012 LABORATORIO 8 FUNCIONES Y RECURSIÓN DICCIONARIOS CHRISTIAN CHAVES
Programación Unidad 5. Recursividad. Programación TIG - TUP 1. Sede Regional Orán UNIVERSIDAD NACIONAL DE SALTA
Unidad 5 Recursividad 1 Recursión Se dice que un elemento es recursivo, cuando en la definición de ese elemento, utilizamos nuevamente a ese elemento. Por ejemplo, para definir la relación familiar de
M.C. Yolanada Moyao Martínez
M.C. Yolanada Moyao Martínez Es una técnica de programación que permite que un bloque de instrucciones se ejecute n veces. En Java los métodos pueden llamarse a sí mismos. Si dentro de un método existe
PROGRAMACIÓN PLAN 2008
GUÍA DE APRENDIZAJE PROGRAMACIÓN COMPETENCIA GENERAL REALIZA PROGRAMAS COMPUTACIONALES BAJO UN ENFOQUE ESTRUCTURADO Y UN LENGUAJE DE PROGRAMACIÓN EN EL CAMPO DE LAS TELECOMUNICACIONES COMPETENCIAS PARTICULARES
Recursión como herramienta en resolución de problemas computacionales
Recursión como herramienta en resolución de problemas computacionales Modularidad! Es común dividir los algoritmos en módulos! Cada módulo lleva a cabo cierta funcionalidad! Muchas veces los módulos sirven
Funciones Tipos de funciones y Recursividad
Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más
Recursividad. Definición. Diseño de Algoritmos Recursivos
Recursividad Definición Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o indirectamente a sí mismo. Esta invocación depende al menos de una condición que actúa como
Resolución de problemas
Resolución de problemas IC-1800 Introducción a la programación I semestre, 2016 1 Algoritmo Una definición bastante usada: Una secuencia de pasos con los que se obtiene un resultado en una cantidad finita
Programación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.
Resolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 8 Resolución de problemas utilizando recursión Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional
Informática Aplicada I
Informática Aplicada I Marcela Morales Quispe Octubre 23, 2013 Funciones y recursividad Objevitos: Utilizar la función rand(). Comprender cómo escribir y utilizar funciones que se llamen a sí mismas. Generación
Diseño de algoritmos
Diseño de algoritmos Análisis de algoritmos Jesús Bermúdez de Andrés Universidad del País Vasco/Euskal Herriko Unibertsitatea (UPV/EHU) Curso 2008-09 1 Análisis de algoritmos Qué analizamos? Función de
Guía de fórmulas y funciones Recurso de apoyo a proceso de migración a software libre
Guía de fórmulas y funciones Recurso de apoyo a proceso de migración a software libre Tabla de Contenido Objetivo... 3 Instruir acerca de los aspectos básicos del uso de fórmulas y funciones en LibreOffice
Figura 1. Cálculo del factorial de un número determinado
Recursividad por Iván Cruz La recursividad es una metodología de programación compleja que al implementarse causa algunas dificultades, debido a que la estructura del programa se convierte en un ciclo.
Resolución de problemas
Resolución de problemas IC-1800 Introducción a la programación I semestre, 2017 1 Algoritmo Una definición bastante usada: Una secuencia de pasos con los que se obtiene un resultado en una cantidad finita
Guía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
Hasta ahora sólo hemos visto algoritmos con tratamiento secuencial
2. Recursividad 1. La recursividad 2. Programación recursiva 1. Recursión directa como método de diseño de soluciones 2. Ejemplos 3. Funcionamiento de la recursión 1. Cómo se comporta un algoritmo recursivo?
Luis Rodríguez Baena Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura
Fundamentos de Programación II Tema 3. Recursividad Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura Naturaleza de la recursividad
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 01/ 2012 Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #10 Programación
Carlos A. Rivera-Morales. Precálculo 2
y Carlos A. Rivera-Morales Precálculo 2 Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales 2 Introducción
Outline. Roberto Carlos Abreu Díaz. January 15, 2010
January 15, 2010 1 Outline Definición Es una técnica de programación en la cual una función se llama a si misma. Ejemplo Te acuerdas del factorial? El factorial de el entero no negativo n es el producto