3 estructuradatos guia
TRANSCRIPT
UNIVERSIDAD PRIVADA
DEL VALLE
FACULTAD DE INFORMATICA Y
ELECTRONICA
DPTO: SISTEMAS Y TECNOLOGIA
INFORMATICA
GUIA PRACTICA DE LABORATORIO
CARRERA: ING DE SISTEMAS INFORMATICOS
ESTRUCTURA DE DATOS
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
GUIA ESTRUCTURA DE DATOS
Práctica Nº 1
INTRODUCCION A LAS ESTRUCTURAS DE DATOS
Enunciado:
1. Cree una Estructura llamada Curso que contenga información como Código (o número de aula), Piso (mayor a
0), Capacidad y Estado (libre o asignado) para realizar las siguientes operaciones.
a) Listado de aulas por piso.
b) Dada una capacidad X, buscar aulas con capacidad iguales o mayores que X.
c) Dado un piso P, una capacidad C y estado libre E, encontrar aulas que cumplan las tres condiciones.
2. Cree una Estructura llamada Complex (complejo) para realizar aritmética denúmeros complejos. Escriba una
aplicación para probar su estructura.
Los números complejos tienen la forma siguiente:
realPart + imagPart * i
Utilice variables de punto flotante para representar los datos de la estructura. Escriba métodos los cuales
permitan realizar las siguientes operaciones:
a) Suma de dos números Complejos: las partes reales y las imaginarias se suman aparte.
b) Resta de dos números Complejos: la parte real del operando derecho se resta a la parte real del operando
izquierdo y la parte imaginaria del operando derecho se resta a la parte imaginaria del operando izquierdo.
c) Impresión de números Complejos en la forma (a, b), donde a es la parte real y b es la parte imaginaria
3. Un conjunto de números enteros es una colección de 0, 1, 2, o más elementos; realizar un programa para
implementar operaciones de la teoría de conjuntos, tales como la a) Unión, b) Intersección y c) Diferencia.
4. Escriba un programa que permita llenar n enteros en un arreglo unidimensional. El llenado será interactivo
preguntando la posición en el arreglo donde se guardará. No se permite espacios vacios entre elementos.
También debe poder eliminar un entero en particular y mostrar en cualquier momento el contenido del arreglo.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Estructuras de Datos en cuanto a su
aplicación y su clasificación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con estructuras de datos básicos conocidos en anteriores cursos.
· Realizar operaciones funcionales con las estructuras de datos (Estáticas) que permitan resolver de alguna forma los
problemas planteados.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Introducción a las Estructuras
de Datos. De la misma manera utilizara equipos del laboratorio de computación para la programación de los ejercicios
planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear aplicación con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de Estructuras de Datos Estáticas, lo cual
ayudará a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 2 periodos clases para solucionar los problemas planteados y/o responder preguntas que puedan surgir durante la
implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones con Estructuras de Datos
Estáticas y conocer las funciones principales.
7. CUESTIONARIO
¿En qué cree Ud. facilita la utilización de las Estructuras de Datos Estáticas, en la planificación de soluciones a
problemas?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 2
PROGRAMACION ORIENTADA A OBJETOS
Enunciado:
1. Diseñar una clase Racional que tenga como datos miembro numerador y denominador, escribir métodos de
acceso público para crear objetos de esta clase. Añadir métodos que permitan realizar aritmética con números
racionales, tales como: sumar (+), restar (-), multiplicar, y dividir (÷) dos números racionales.
2. Cree una clase Círculo que contenga como centro un Punto(x, y) y un radio, implemente operaciones de
creación de un Círculo, además de operaciones como ingresar mostrar y mover el círculo en una posición ya
sea en X o en Y, y finalmente escriba un método para saber si un punto es parte del circulo o circundante.
3. Un almacén recibe semanalmente dos tipos de productos: computadoras y televisores. Se desea registrar la
información general de los productos como Identificador (de tipo alfanumérico), Propietario y Fecha de
ingreso. Crear una clase Producto que implemente estos datos. A partir de esta clase, diseñar dos clases
derivadas: Computadora, con capacidad de procesamiento (tipo cadena), tamaño de ram (tipo int) y tamaño de
disco (tipo cadena); y Televisor, con marca (tipo cadena) y tamaño (tipo float). Cada una de las tres clases
tendrá una función leer y otra función mostrar(), para visualizar sus datos. Escribir un programa que cree
instancias de las clases Computadora y Televisor, solicite datos del usuario y a continuación los visualice por
la pantalla.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de la Programación Orientada a
Objetos en cuanto a su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con Jerarquía de Clases haciendo uso de los conceptos generales aprendidos en
las clases teóricas.
· Realizar operaciones de reutilización de la información para plantear soluciones óptimas (primer
principio de polimorfismo).
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Fundamentos de la
Programación Orientada a Objetos. De la misma manera utilizará equipos del laboratorio de computación para la
programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear las soluciones con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de la POO con Jerarquía de Clases, lo cual
ayudará a la evaluación e implementación de los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 2 periodos clases para solucionar los problemas planteados y/o responder preguntas que puedan surgir durante la
implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones Orientadas a Objetos con
Jerarquía de Clases que le permitan plantear soluciones más elegantes y reales a problemas computacionales.
7. CUESTIONARIO
¿En que cree Ud. facilita la reutilización de código y cuál es la desventaja de usarla en una jerarquía de clases?, ¿Cuándo
cree que debe usarse y cuando no?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 3
LISTAS LINEALES
Enunciado:
1. Realizar un programa que maneje una lista ligada simple con los datos demedicamentos para la venta:
nombre y stock. La lista debe mantener un ordenalfabético por nombre, por lo que cada vez que se introduce
un nuevomedicamento, éste es colocado en el lugar correspondiente. Cada medicamentopuede aumentar o
disminuir su stock. El programa no debe eliminar de la lista aaquellos productos con stock 0, pero si se desea
hacer una venta (disminuirstock) deberá mostrar un mensaje indicando que dicha transacción no
estápermitida. Finalmente debe mostrar un listado de:
a. Todos los medicamentos.
b. Medicamentos son stock menor a X.
c. Medicamentos con stock mayor a Y.
2. Realizar un programa que maneje polinomios de grado N representados en listasenlazadas simples, el programa
debe realizar las siguientes tareas:
a. Dadas dos listas que representen dos polinomios, obtener la multiplicación de
los polinomios en una tercera lista.
Suponer que existe una función para crear un polinomio, representado en una lista (la lista tiene ordenados
los exponentes de mayor a menor, no tiene términos con exponentes iguales y los términos tienen coeficientes
diferentes de cero).
3. Escribir un programa para intercalar dos Listas Circulares Dobles con suselementos ordenados (no se deben
crear nodos), el método debe devolver unaListaDobleCircular. Especificar la clase de ListaDobleCircular.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generalesde Listas Lineales en cuanto a su
implementación y aplicación.
2. OBJETIVOS
. Realizar la identificación de las operaciones necesarias para la Implementación de la
estructura lista y su aplicación a problemas.
· Conocer y realizar aplicaciones con Listas Ligadas haciendo uso de los conceptos generales aprendidos en las
clases teóricas.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Listas Lineales. De la misma
manera utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear las soluciones con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de la estructura lista, lo cual ayudará a la
evaluación e implementación de los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 1 periodo de la clase para solucionar los problemas planteados y/o responder preguntas que puedan surgir
durante la implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando Listas Lineales a
problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de la ED Lista implementado en las Clases teóricas?, ¿Muestre su propia
abstracción de datos?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 4
PILAS Y COLAS
Enunciado:
1. Escribir un programa que convierta una expresión aritmética que está en notación infija a otra en notación
prefija. Utilice en la solución una pila para almacenar operadores.
2. Escribir un programa que lea una cadena de caracteres, metiendo cada carácter en una pila a medida que se
lee y añadiéndolo simultáneamente a una cola. Cuando se encuentra el final de la cadena, utilice las
operaciones básicas de pilas y colas para determinar si la cadena introducida es un palíndromo.
3. Realizar un programa que realice las siguientes tareas:
a. Dada un PILA pasar sus elementos a una COLA. Luego de llevar unelemento, éste debe ser
eliminado de la PILA.
b. Dada un COLA pasar sus elementos a una PILA. Luego de llevar unelemento, éste debe ser
eliminado de la COLA.
Se debe corresponder el orden de los elementos, es decir: el primer elemento de la PILA también debe ser el
primer elemento de la COLA, y viceversa.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Listas Lineales (Pilas y Colas) en
cuanto a su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con las Estructuras de Datos Pilas y Colas haciendo uso de los conceptos
generales aprendidos en las clases teóricas.
· Realizar la identificación de las operaciones necesarias para la implementación de las
estructuras y su aplicación a problemas.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Listas Lineales (Pilas y Colas).
De la misma manera utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear las soluciones con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de las estructuras Pila y Cola, lo cual ayudará a la
evaluación e implementación de los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 1 periodo de la clase para solucionar los problemas planteados y/o responder preguntas que puedan surgir
durante la implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando las estructuras Pila y
Cola a problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de la ED Pila y Cola implementado en las Clases teóricas?, ¿Muestre su
propia abstracción de datos?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 5
ALGORITMOS RECURSIVOS
Enunciado:
1. Programar un algoritmo recursivo que permita invertir un número. Por ejemplo: Entrada: 123 Salida: 321
2. Escriba una función recursiva que calcule el capital al cabo de n años dado un monto inicial M y un interés
anual de i% sobre el capital del año anterior.
3. Escribir una función recursiva que liste todos los pares de enteros positivos que son la suma de un número
dado. Por ejemplo:
8 = 7 + 1, 6 + 2, 5 + 3, 4 + 4
(No se puede repetir la pareja 7 + 1 y 1 + 7)
4. Escribir una función utilizando un ciclo de repetición y su correspondientefunción recursiva que calcule la
suma de la serie:1 + 2 + 3 + + (n-1) + n
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Algoritmos Recursivos en cuanto a
su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con Recursividad haciendo uso de los conceptos generales aprendidos en las
clases teóricas.
· Realizar la identificación de los elementos necesarios para la implementación de
algoritmos recursivos identificando los casos base.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Algoritmos Recursivos. De la
misma manera utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear aplicación con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de los algoritmos recursivos, lo cual ayudará a
la evaluación y programación de los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 1 periodo de la clase para solucionar los problemas planteados y/o responder preguntas que puedan surgir
durante la implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando y planteando
algoritmos recursivos que le permitan plantear soluciones más abstractas y elegantes a problemas computacionales.
7. CUESTIONARIO
¿Cuándo cree Ud. facilita la recursividad a la planificación de soluciones a un problema planteado?, ¿En qué casos debe
usarse y cuándo no?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 6
ÁRBOLES
Enunciado:
1. Resuelva el siguiente problema empleando árboles binarios de búsqueda. Se desea almacenar la información
correspondiente al glosario de un libro (Área temática, palabra clave, páginas). Las búsquedas pueden
realizarse por palabra clave y el programa debe indicar las páginas donde se encuentra y el área temática al
que corresponde. También debe ser posible buscar por área temática las palabras claves incluidas en ella.
Además, por cada área temática se almacena los títulos de otros libros que tratan sobre el tema de manera que
debe ser posible buscar los títulos publicados para un tema en particular.
2. Construya un árbol de búsqueda binaria para cada una de las siguientes listas:
a. L={16, 3, 7, 42, 0, 25, 12, 6, 11, 0, 15, 8, 23, 2}
b. L={14, 15, 4, 9, 7, 3, 5, 16, 4, 20, 17, 9, 14, 5}
c. L={B, D, H, A, B, G, F, C, D, E, J, M, O, N, I}
3. Represente las siguientes expresiones como árboles binarios:
a. 5 + 10 * 15
b. (5 + 10 * 15)
c. 2 + (3 – 4) * (5 ^ (6 * 4)
d. (A + B * C) ^ ((A + B) * C)
4. Dada la secuencia de claves enteras 95, 24, 66, 77, 43, 34, 96, 17, 41, 12, 0, 15, 20, 5 representar gráficamente
el árbol AVL correspondiente.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Arboles en cuanto a su
implementación y aplicación.
2. OBJETIVOS
Conocer y realizar aplicaciones con Estructuras de Datos Dinámicas Arboles haciendo uso de los conceptos
generales aprendidos en las clases teóricas.
Realizar la identificación de las operaciones necesarias para la implementación de
la estructura árbol y su aplicación a problemas.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Árboles. De la misma manera
utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear soluciones con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de las ED No Lineales (Árboles), lo cual ayudará
a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 2 periodos clases para solucionar los problemas planteados y/o responder preguntas que puedan surgir durante la
implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando ED No Lineales
(Árboles) a problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de la ED Árbol implementado en las Clases teóricas?, ¿Muestre su propia
abstracción de datos?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 7
GRAFOS
Enunciados:
1. Escribir un programa para dar de entrada los vértices y las aristas de un grafo dirigido. La representación del
grafo será mediante matriz de adyacencia. El programa pedirá un vértice para realizar el recorrido en
profundidad del grafo a partir de dicho vértice.
2. Un grafo etiquetado está formado por los vértices 4, 7, 14, 19, 21 y 25. Las aristas siempre van de un vértice
de mayor valor numérico a otro de menor valor, y el peso es el módulo del vértice origen y el vértice destino.
Escribir un programa que represente el grafo en listas de adyacencia. Además realizar un recorrido en anchura
desde un vértice dado.
3. Una aplicación de planificación de viajes utiliza grafos dirigidos y etiquetados para representar un conjunto
grande de ciudades y caminos o rutas aéreas entre ellas. En general, los grafos utilizados serán poco densos (es
decir, el número de caminos será mucho menor que (número de ciudades)2 ). Necesitamos que la consulta de
las carreteras que salen de una ciudad y las que llegan a la misma sea rápida
a) Proporcione una estructura de representación que sea eficiente en cuanto a uso de memoria y a tiempo de
ejecución de las dos operaciones de consulta anteriores. Ten en cuenta que necesitamos almacenar mucha
información tanto para las ciudades (nombre, posición, país, ...) como para los caminos (tipo, distancia,
...).
4. Un grafo G consta de los nodos V = {A, B, C, D, E} y la matriz de adyacencia:
M =
0 1 1 1 0
1
1 1 0 1 0
1 1 0 1 1
0
0
1
1
1
1
0
0
1
0
a) Dibujar el grafo G (V,A) correspondiente
b) Representar el grafo G mediante listas de adyacencia
5. Dado el grafo G = (V, A) del ejercicio anterior realice el recorrido del grafo en anchura y profundidad partiendo
del nodo C.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Grafos en cuanto a su
implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con la ED Grafo haciendo uso de los conceptos generales aprendidos en las
clases teóricas.
· Realizar la identificación de las operaciones necesarias para la implementación de la
ED Grafo y su aplicación a problemas.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Grafos. De la misma manera
utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear soluciones con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales de las ED No Lineales (Grafos), lo cual ayudará
a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 2 periodos clases para solucionar los problemas planteados y/o responder preguntas que puedan surgir durante la
implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando ED No Lineales
(Grafos) a problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de la ED Grafo implementado en las Clases teóricas?, ¿Muestre su propia
abstracción de datos?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 8
ALGORITMOS DE ORDENAMIENTO
Enunciados:
1. Se trata de resolver el siguiente problema escolar. Dada las notas de los alumnos de un colegio en el primer curso
de bachillerato, en las diferentes asignaturas (5, por comodidad) se trata de calcular la media de cada alumno,
la media de cada asignatura, la media total de la clase y ordenar los alumnos por orden decreciente de notas
medias individuales.
2. Escribir un programa que lea una serie de números enteros, los ordene en orden decreciente y a continuación
visualice la lista ordenada.
3. Se lee dos listas de números enteros, A y B, de 100 y 60 elementos, respectivamente. Se desea resolver
mediante procedimientos las siguientes tareas:
a) Ordenar cada una de las listas A y B
b) Crear una lista C por intercalación o mezcla de las listas A y B
c) Localizar si existe en la lista C el número 255.
d) Visualizar la lista C ordenada descendentemente.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Algoritmos de Ordenamiento en
cuanto a su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con los algoritmos de ordenamiento y su análisis de ejecución haciendo uso de los
conceptos generales aprendidos en las clases teóricas.
· Realizar la aplicación y selección de la mejor ED de almacenamiento de la información para operaciones de
ordenamiento de datos.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Algoritmos de Ordenamiento.
De la misma manera utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear programas con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales sobre Algoritmos de Ordenamiento, lo cual
ayudará a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 1 periodo de la clase para solucionar los problemas planteados y/o responder preguntas que puedan surgir
durante la implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando algoritmos de
ordenamiento adecuados según sea la Estructura de Datos seleccionada en la solución de problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de los algoritmos de ordenamiento en una ED Lineal (Listas Enlazadas)?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 9
ALGORITMOS DE BÚSQUEDA
Enunciados:
1. Dado un vector X de n elementos reales, donde n es impar, diseñar una función que calcule y devuelva la
mediana de ese vector. La mediana es el valor tal que la mitad de los números son mayores que el valor y la
otra mitad son menores. Escribir un programa que compruebe la función.
2. Se desea realizar un programa principal que realice las siguientes tareas con procedimientos o funciones
que devuelven un valor:
a) Leer una lista de números desde el teclado
b) Visualizar dichos números
c) Buscar si existe el número 444 en la lista
3. Se quiere construir una agenda telefónica con la siguiente información: nombre, domicilio y número de
teléfono. Diseñar un programa para mantener la agenda, que como mucho almacenará la información sobre
100 personas, de tal forma que la búsqueda se realice por nombre de la misma y que se mantenga durante su
procesamiento ordenada por frecuencia de entrada a la agenda.
4. Escribir un programa que lea 42 números en un arreglo de 7 x 6 y realizar las siguientes operaciones:
a) Mostrar los elementos del arreglo
b) Encontrar el elemento mayor del arreglo
c) Indicar donde se encuentra el elemento mayor del arreglo
d) Si el elemento mayor esta repetido, indicar cuantas veces y la posición de cada elemento
repetido.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Algoritmos de Búsqueda en
cuanto a su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con los algoritmos de búsqueda y su análisis de ejecución haciendo uso de
los conceptos generales aprendidos en las clases teóricas.
· Realizar la aplicación y selección de la mejor ED de almacenamiento de la información para operaciones de
consulta o búsqueda de datos.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Algoritmos de
Búsqueda. De la misma manera utilizará equipos del laboratorio de computación para la programación de los
ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear aplicación con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales sobre Algoritmos de Búsqueda, lo cual
ayudará a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 1 periodo de la clase para solucionar los problemas planteados y/o responder preguntas que puedan
surgir durante la implementación de los programas.
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando algoritmos
de búsqueda adecuados según la Estructura de Datos implementada en la solución de problemas computacionales.
7. CUESTIONARIO
¿Cómo puede Ud. optimizar la implementación de los algoritmos de búsqueda en una lista estática de números
enteros?
UNIVERSIDAD DEL VALLE
SISTEMAS Y TECNOLOGIA INFORMATICA
ESTRUCTURA DE DATOS
Práctica Nº 10
ORGANIZACIÓN DE ARCHIVOS
Enunciados:
1. Escribir un programa que permita crear un archivo de inventario de los libros de una librería, así como calcular
e imprimir el valor total del inventario. Donde los datos de un libro son: título, autor, número de código, precio,
cantidad.
2. El programa anterior se desea ampliar en el sentido de visualizar el archivo completo, o bien consultar un
registro determinado
3. Cada vez que la librería del programa 2 recibe un pedido de libros, se introducen en un archivo PEDIDO y
luego se debe mezclar con el archivo INVENTARIO, a fin de tener actualizado el archivo. (Los dos archivos
tienen el mismo tipo de registros.)
4. El programa de librería se desea ampliar para crear una base de datos, de modo que pueda responder
correctamente a las siguientes preguntas:
a) ¿Cuántos libros del autor x existen en stock?
b) ¿Cuántos libros cuyo precio este comprendido entre 35.50 Bs. y 45.70 Bs.?
c) ¿Cuál es el número de código de “La insoportable levedad de ser”?
d) ¿Cuántos libros del stock hay de precio mayor de 50.00 Bs. y más de 10 ejemplares?
e) ¿Cuál es el libro más vendido?
5. Se dispone de un archivo de registros cada uno de los cuales contiene loscampos: nombre, dirección, edad,
fecha de nacimiento, sexo y estado civil, y sequiere crear un nuevo archivo de registros que contenga solo los
nombres yedad. Asimismo se desea escribir el nombre y dirección de cada persona cuyosnombres comiencen
con las letras A, B o C y hayan nacido el mes de mayo.
1. CONOCIMIENTO TEÓRICO REQUERIDO
Para la realización de esta práctica el alumno debe conocer los conceptos generales de Organización de Archivos en cuanto
a su implementación y aplicación.
2. OBJETIVOS
· Conocer y realizar aplicaciones con los archivos y su análisis de ejecución haciendo uso de los conceptos
generales aprendidos en las clases teóricas.
· Realizar la aplicación y selección de la mejor ED de almacenamiento de la información para operaciones de
manipulación de datos.
3. MATERIALES Y EQUIPOS
Para la realización de la práctica el estudiante debe contar con la parte teórica del capítulo Organización de Archivos. De
la misma manera utilizará equipos del laboratorio de computación para la programación de los ejercicios planteados.
4. TÉCNICA O PROCEDIMIENTO
El estudiante deberá plantear aplicación con la ayuda de apuntes de clase.
El estudiante tiene conocimiento previo de los conceptos fundamentales sobre Organización de Archivos, lo cual ayudará
a la evaluación y aplicación en los ejercicios planteados.
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
Se estima 2 periodos clases para solucionar los problemas planteados y/o responder preguntas que puedan surgir durante la
implementación de los programas
6. RESULTADOS ESPERADOS
A la conclusión de la práctica el alumno tendrá la habilidad de poder realizar aplicaciones utilizando algoritmos de
ordenamiento externo adecuados según sea el mecanismo de organización de los datos en archivos en la solución de
problemas computacionales.
7. CUESTIONARIO
¿En qué cree Ud. dificulta los mecanismos de organización de archivos para las operaciones de recuperación y
actualización de datos)?