Tarea 1: Estructuras Hash

Vea la Solucion

Propósito:
El propósito de esta tarea es repasar las técnicas aprendidas en sus cursos de programación 1 y 2. Especialmente el uso de procedimientos y funciones, registros y punteros. Tómenlo como una oportunidad para "desempolvarse" y aceitar sus motores para el nuevo semestre.
Descripción:

Debe implementar una tabla hash que resuelva las colisiones usando arboles binarios ordenados. Para ordenarlos simplemente compare la llave del registro que desea agregar con la llave del registro en la "hoja" actual, si la primera es menor siga al hijo izquierdo, si es mayor siga al hijo derecho. Si le surgió la duda: "Que pasa si son iguales?", la respuesta es: Su diseño NO DEBE PERMITIR ingresar dos llaves iguales. Para forzar que existan colisiones, la tabla deberá contar con 7 casillas máximo.

Además para probar su estructura hash, deberá incluir la capacidad de leer un archivo .csv con el siguiente formato:

,,

La interfase con el usuario deberá presentar un menú principal que muestre las siguientes opciones:

*** Menu Principal ***
1. Cargar archivo
2. Buscar elemento
3. Modificar elemento
4. Salir
Ingrese su opción: _

Lo que debe hacer cada opción:

  1. Cargar archivo: debe preguntar por el nombre del archivo que se desea cargar, limpiar la tabla hash existente (por favor recuérdese de liberar la memoria utilizada por los arboles creados, si existen), y cargar la información.
  2. Buscar elemento: debe preguntar por la llave de un elemento en particular, buscarlo y si lo encuentra mostrar la información del elemento, sino solo desplegar un mensaje adecuado.
  3. Modificar elemento: debe preguntar por la llave de un elemento en particular y buscarlo.
    • Si lo encuentra, debe preguntar que atributo (o campo) desea modificar, esto se puede hacer con un menú así:

      --- Que dato desea modificar ---
      1. Nombre
      2. Telefono
      3. Ninguno
      Ingrese su opción: _

      después aceptar el nuevo dato y actualizar el elemento.

    • Si no lo encuentra desplegar un mensaje adecuado.

Para ver un programa completo funcionando haga click aqui.

Que deben entregar?:

Deben entregar el archivo .pas que codificaron (preferiblemente documentado) junto con los archivos .csv que utilizaron para sus pruebas (por lo menos de 10 elementos). Deben empaquetar sus archivos en un .zip y mandarlo al email: jdelcid@galileo.edu

Dóa de entrega: Martes 23 de Enero 2001 - antes de las 11:59:99 PM.

El ejercicio es individual y todos deben entregar programas diferentes. Si es absolutamente necesario consultar a un amigo, hágalo, pero no compartan CODIGO. O sea que se pueden explicar, pero no se "pasen" el programa. Se revisaran las copias con MOSS (un programa sofisticado de detección de copia).

Glosario: