





Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
diagrama de flujo que te serivra muy bien por que yo digo
Tipo: Esquemas y mapas conceptuales
1 / 9
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






Este es un reporte donde se hablara sobre los algoritmos recursivos que son una forma para aprovechar los atajos y solventar problemas, en este caso se puede decir que recursión es una de las ideas centrales de ciencia de computación, ya que puede resolver un problema mediante recursión, recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo problema ya que el poder de la recursión evidentemente se fundamenta en la posibilidad de definir un conjunto infinito de objetos con una declaración finita, Igualmente un número infinito de operaciones computacionales puede describirse con un programa recursivo finito, incluso en el caso de que este programa no contenga repeticiones explícitas ya que en la mayoría de los lenguajes de programación dan soporte a la recursión permitiendo a una función llamarse a sí misma desde el texto del programa. Algunos lenguajes de programación funcionales no definen estructuras de loops sino que posibilitan la recursión llamando código de forma repetitiva, además la teoría de la computabilidad ha demostrado que estos dos tipos de lenguajes son matemáticamente equivalentes, es decir que pueden resolver los mismos tipos de problemas, aunque los lenguajes funcionales carezcan de las típicas estructuras while y for.
Es necesario, pues: Identificar y formular el caso base o condición de salida del cual conocemos la solución directamente. Formular el caso general que debe poder resolverse en función del caso base y una transformación del caso general hacia uno más sencillo. Entrada: cantidad Y un conjunto. de tipos de moneda Salida: lista de pares (número, tipo de moneda) subprograma Pagar (cantidad, conjunto de monedas) escribir (moneda mayor del conjunto, cantidad división entera moneda mayor conjunto) si hay más tipos de moneda en el conjunto, Pagar (cantidad restante, subconjunto. de tipos de moneda) fin subprograma donde cantidad restante es: cantidad - moneda mayor conjunto* (cantidad división entera moneda mayor conjunto) subconjunto.
De tipos monedas es: conjunto. de monedas - moneda mayor conjunto
Estructura de datos secuencial con acceso restringido. La principal característica de esta estructura es que el acceso tiene la propiedad “LIFO” (Last in, first out). Las principales operaciones sobre una pila son: Push ( item ) Inserta un elemento en el tope de la pila. Top ( ) Consulta el elemento del tope de la pila. Pop ( ) Extrae el elemento del tope de la pila. Aplicaciones de la pila Evaluador de expresiones aritméticas infijas. Llamadas a procedimientos. Recursión.
Estructura de datos secuencial con acceso restringido. La principal característica de esta estructura es que el acceso tiene la propiedad “FIFO” (First in, first out). Las principales operaciones sobre una cola son: Enqueue ( item ) Inserta un elemento al final de la cola. Back ( ) Consulta el ultimo elemento de la cola. Front ( ) Consulta el primer elemento de la cola. Dequeue ( ) Extrae el primer elemento de la cola. Listas enlazadas
Podemos plantear una implementación recursiva: función factorial(n) si n = 1 devolver 1 sino devolver n * factorial (n – 1) fin si fin función En este caso, la sentencia si n = 1 devolver 1 Es la condición de salida o caso base que evita que la función se llame a sí misma indefinidamente.
Se puede decir que los algoritmos recursivos son aquellos que realizan llamadas recursivas para llegar a un resultado, algoritmos iterativos son aquellos que llegan a un resultado a través de una iteración mediante un ciclo definido o indefinido ya que todo algoritmo recursivo puede expresarse como iterativo y viceversa ya que sin embargo, siguiendo las condiciones del problema a resolver se podrá ser preferible utilizar la solución recursiva o la iterativa ya que a medida que se realizan llamadas a funciones, el estado de las funciones anteriores se almacenan en una pila de llamadas a funciones y esto permite que sea posible que una función se llame a sí misma pero que las variables dentro de las función tomen distintos valores y en la recursión el proceso en el cual una función se llama a sí misma a este proceso que permite crear un nuevo tipo de ciclos pero siempre y cuando se escriba una función recursiva es importante considerar el caso base (el que detendrá la recursividad) y el caso recursivo (el que realizará la llamada recursiva). Una función recursiva sin caso base, es equivalente a un bucle infinito y una función no es mejor ni peor por ser recursiva.