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
Más detallesRecursividad. 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
Más detallesRecursividad... 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
Más detallesPrimeros 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?
Más detallesRecursividad... 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
Más detallesRecursividad 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.
Más detallesProgramació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
Más detallesIntroducció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
Más detallesPrimeros 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
Más detallesFunciones 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
Más detallesFunciones 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
Más detallesSecuencias 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
Más detallesEstructuras 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
Más detallesQué 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.
Más detallesMetodologí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.
Más detallesListas 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]
Más detallesRecursió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
Más detallesSistemas 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
Más detallesProgramació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
Más detallesUNIVERSIDAD 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
Más detallesProgramació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
Más detallesSistemas 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,
Más detallesRecursividad 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
Más detallesAná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
Más detallesdit 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
Más detallesTema: 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
Más detallesTema: 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
Más detallesTema: 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
Más detallesRECURSIVIDAD. 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
Más detallesTema 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
Más detallesEjercicios 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
Más detallesTema: 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
Más detallesTema: 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
Más detallesComplejidad 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.
Más detallesSistemas 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?
Más detallesUnidad 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
Más detallesTema 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
Más detallesAlgoritmos 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
Más detallesRecursividad. 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
Más detallesConceptos 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
Más detallesUNIVERSIDAD 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
Más detallesIntroducció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
Más detallesConceptos 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
Más detallesUnidad 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
Más detallesPrá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
Más detallesLa 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
Más detallesDepartamento 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
Más detallesTrabajo 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)
Más detallesSubrutinas. 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
Más detallesPara 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
Más detallesPara 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,
Más detallesEstructura 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
Más detallesTECNICAS 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
Más detallesDra. 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
Más detallesESTRUCTURA 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
Más detallesUniversidad 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
Más detallesRecursividad. 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.
Más detallesProgramació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
Más detalles4.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
Más detallesUnidad 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
Más detallesRecursividad. 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
Más detallesTema 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
Más detallesCapí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
Más detallesAlgoritmos 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
Más detallesUNIVERSIDAD 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
Más detallesRecursió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
Más detallesInformá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
Más detallesPROGRAMACION 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
Más detallesUNIDAD 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
Más detallesCodeHood 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
Más detallesSecció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
Más detallesRECURRENCIA 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
Más detallesProgramació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
Más detallesUn 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
Más detallesManual 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
Más detallesFundamentos 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
Más detallesProgramació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.
Más detallesESTRUCTURA 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
Más detallesimport 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
Más detallesProgramació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ás detallesM.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
Más detallesPROGRAMACIÓ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
Más detallesRecursió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
Más detallesFunciones 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
Más detallesRecursividad. 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
Más detallesResolució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
Más detallesProgramació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.
Más detallesResolució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
Más detallesInformá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
Más detallesDiseñ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
Más detallesGuí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
Más detallesFigura 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.
Más detallesResolució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
Más detallesGuí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:
Más detallesHasta 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?
Más detallesLuis 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
Más detallesUNIVERSIDAD 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
Más detallesCarlos 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
Más detallesOutline. 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
Más detalles