









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
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
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
Descubre las mejores universidades de tu país según los usuarios de Docsity
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
En este documento se pueden encontrar 3 practicas para la materia de estructura de Datos
Tipo: Ejercicios
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Calcular la serie de Fibonacci Práctica No. 1 Fecha de realización: 3 de Septiembre de 2017 Asignatura: Estructura de datos Carrera: Ingeniería en Sistemas Computacionales Unidad de Aprendizaje: 2 Número de práctica: 1 Objetivo: Realizar una práctica donde el alumno utilice métodos recursivos para calcular la serie de fibonacci Lugar: Salón de clases Tiempo asignado: 1 día Equipo: Materiales: No aplica Reactivos: No aplica Computadora Observaciones: Introducción: La práctica a desarrollar se hace para comprender como funcional los métodos recursivos y como pueden aplicar estos dentro de un programa en la solución de un problema matemático. Marco Teórico: Los números de fibonnacci se generar mediante el establecimiento de dos valores que son F0=0, F1= y aplicarlos a la formula siguiente: Fn=Fn-1 + Fn- Con los valores iniciales anteriormente descritos podemos obtener el resto de la secuencias como la siguiente: 0,1,1,2,3,5,8,13,21,34,… De forma iterativa, debemos decir que la serie de Fibonacci es la suma de los 3 números semillas que serían en este caso el 0 y el 1, y su suma nos daría 1 de
forma más explicativa ls serie de Fibonacci seria de la siguiente manera: 0+1= 1+1= 1+2= 2+3= ……. …. Sin embargo, si se quiere el número Fibonacci 100 de esta secuencia, se necesitaría una gran cantidad de cálculos intermedios por lo que aquí es donde toman importancia los algoritmos recursivos. Algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente. Generalmente, si la primera llamada al subprograma se plantea sobre un problema de tamaño u orden N, cada nueva ejecución recurrente del mismo se planteará sobre problemas, de igual naturaleza que el original, pero de un tamaño menor que N. De esta forma, al ir reduciendo progresivamente la complejidad del problema que resolver, llegará un momento en que su resolución sea más o menos trivial (o, al menos, suficientemente manejable como para resolverlo de forma no recursiva). En esa situación diremos que estamos ante un caso base de la recursividad. Una vez que se dio la definición de estos algoritmos vamos a tratar nuestro problema de la siguiente manera. Int Fibonacci(int n){ If(n==0){ Return 0; }else if (n==1){ 4 Retrun 1; }else{ Return Fibonacci(n-1)+Fibonacci(n-2); }
¿Cómo funciona un método recursivo? El método hace uso de sí mismo para resolver un problema tantas veces como sea necesario ¿Cuál es la diferencia entre un método iterativo y uno recursivo? Recursivo: es un método de reducción de un problema, desde arriba hacia abajo, consiguiendo una versión del propio problema cada vez más simple hasta que se llega a un caso base. Iterativo: es el que repite un proceso durante un número determinado de veces (iteraciones), dependiendo de los parámetros definidos por el programador. Normalmente la salida de una iteración del proceso se utiliza como punto de inicio para la siguiente iteración. Cada paso origina el paso siguiente. ¿Cuál es el algoritmo para resolver el problema planteado? Conclusiones:
El método recursivo puede ser de gran utilidad para la solución de problemas complejos que podrían ser más complejos al tratar de resolverse con un método iterativo, la aplicación del método recursivo puede estar presente en nuestra vida sin darnos cuenta pues se puede dar en casos tan simples como el sacar la copia de una copia que se le hizo a un documento original, o un ejemplo más fácil de entender y más apto es relacionando las muñecas rusas pues se podría decir que como en la recursividad se debe empezar por la más pequeña hasta la más grande para acomodarlas. NOMBRE DE LA PRÁCTICA: 7 Ordenamiento Por Mezcla Práctica No. 2 Fecha de realización: 3 de Septiembre de 2017 Asignatura: Estructura de datos Carrera: Ingeniería en Sistemas Computacionales Unidad de Aprendizaje: 2 Número de práctica: 2 Objetivo: Realizar un practica donde el alumno utilice métodos recursivos para ordenar de mayor a menor una serie de números que se encuentran desordenados en un vector Lugar: Sala de computo Tiempo asignado: 1 día Equipo: Materiales: No aplica Reactivos: No aplica Computadora Observaciones: Introducción: La práctica a desarrollar se hace para reforzar el conocimiento de los métodos recursivos aplicándolo a diferentes problemas, esta práctica se realiza mediante procedimientos recursivos para que el alumno observe la optimización del programa mediante funciones recursivas.
Utilizaremos dos índices, i y j, para recorrer cada una de las dos listas. Utilizaremos una tercera lista, resultado, donde almacenaremos el resultado. Mientras i sea menor que el largo de lista1 y j menor que el largo de lista2, significa que hay elementos para comparar en ambas listas. o Si el menor es el de lista1: agregar el elemento i de lista1 al final del resultado. Avanzar el índice i. o de lo contrario: agregar el elemento j de lista2 al final del resultado. Avanzar el índice j. Una vez que una de las dos listas se termina, simplemente hay que agregar todo lo que queda en la otra al final del resultado. Recursividad En matemáticas se da el nombre de recursión a la técnica consistente en definir una función en términos de sí misma. Puesto que en C una función puede llamar a otras funciones, se permite que una función también pueda llamarse a sí misma. Toda función definida recursivamente debe contener al menos una definición explícita para alguno de sus argumentos. De no ser así la función puede caer en un bucle infinito. FO-TESJo- Definicion: Se llama recursividad a un proceso mediante el que una función se llama a sí misma de forma repetida, hasta que se satisface alguna determinada condición. El proceso se utiliza para computaciones repetidas en las que cada acción se determina mediante un resultado anterior. Se pueden escribir de esta forma muchos problemas iterativos.
3. Indicaciones: 3.1 Antes de la práctica: dar a conocer cuáles son las características de entrega y realización de la práctica. 3.2 Durante la práctica: Resolver dudas que puedan surgir a los alumnos durante el desarrollo del programa. 3.3 Después de la práctica: Explicar al alumno donde estuvo incorrecto el desarrollo
del programa de ser ese el caso, en caso contrario otorgar un puntaje al trabajo realizado. Procedimiento: El alumno investiga que es una función recursiva y que es un factorial Realiza el algoritmo del programa en su cuaderno Desarrolla el programa mediante métodos recursivos Comprueba el funcionamiento del programa Entrega el programa al profesor Disposición de residuos: No aplica Resultados: Pude obtener el numero factorial del número dado por el usuario es importante aclarar que el programa no recibe números negativos y por tanto se repite hasta que el usuario digite una cantidad valida
7. Análisis de Resultados: El resultado del programa es dado por la multiplicación entre los números que se anteriores al número que ha digitado el usuario, no parece un proceso muy complejo pero lo que sucede es que se realiza una operación basada en incógnitas pues el programa funcionara hasta que llegue al último número pues con el resultado del factorial de este se podrán resolver los factoriales anteriores y estos se irán sumando para arrojar el resultado final, es por ello que se utiliza la recursividad 8. Cuestionario: ¿Cuál es el algoritmo para resolver el problema planteado?
Juego de las torres de Hanói Práctica No. 3 Fecha de realización: 8 de Septiembre de 2017 Asignatura: Estructura de datos Carrera: Ingeniería en Sistemas Computacionales Unidad de Aprendizaje: 2 Número de práctica: 3 Objetivo: Realizar un programa donde mediante recursividad se resuelva el número de movimientos que se emplean en el juego de las torres de Hanói Lugar: Salón de clases Tiempo asignado: 3 días Equipo: Computadora Materiales: No aplica Reactivos: No aplica Observaciones: Introducción: Mediante la realización de este programa se pretende que el alumno aplique las funciones recursivas aprendidas en prácticas anteriores para resolver un problema más complejo que en este caso es determinar el número de movimientos que se necesitan para pasar los discos de una torres a otra, esto se hace con el uso de tres torres y el número de discos depende de los que el usuario desee agregar a su juego tomando en cuenta que cada que el número de discos aumenta la complejidad también lo hace. Marco Teórico: El juego, en su forma más tradicional, consiste en tres varillas verticales. En una de las varillas se apila un número indeterminado de discos (elaborados de madera) que determinará la complejidad de la solución, por regla general se consideran ocho discos. Los discos se apilan sobre una varilla en tamaño decreciente. No hay dos discos iguales, y todos ellos están apilados de mayor a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de la varilla ocupada (es decir la que posee la torre) a una de las otras varillas vacantes. Para realizar este objetivo, es necesario seguir tres simples reglas: Sólo se puede mover un disco cada vez. Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo.
Sólo puedes desplazar el disco que se encuentre arriba en cada varilla. Recursividad En matemáticas se da el nombre de recursión a la técnica consistente en definir una función en términos de sí misma. Puesto que en C una función puede llamar a otras funciones, se permite que una función también pueda llamarse a sí misma. Toda función definida recursivamente debe contener al menos una definición explícita para alguno de sus argumentos. De no ser así la función puede caer en un bucle infinito. Definición: Se llama recursividad a un proceso mediante el que una función se llama a sí misma de forma repetida, hasta que se satisface alguna determinada condición. El proceso se utiliza para computaciones repetidas en las que cada acción se determina mediante un resultado anterior. Se pueden escribir de esta 13 forma muchos problemas iterativos.