UNIVERSIDAD de BUENOS AIRES
FACULTAD DE INGENIERÍA
ALGORITMOS Y PROGRAMACIÓN II – 75.41
Cátedra Ing. Mandrafina - Cursos: 002 / 004
2º Cuatrimestre 2004
Trabajo Práctico Nº2
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
ÍNDICE
Normas del Trabajo Práctico ............................................................................................ 3
Armado de la carpeta:................................................................................................... 3
Secciones de la carpeta:................................................................................................ 3
Para la evaluación:........................................................................................................ 3
Trabajo Práctico Nº 2 ....................................................................................................... 4
[[Link]] ........................................................................................................... 4
Estructura:............................................................................................................. 4
Características:...................................................................................................... 4
[[Link]].......................................................................................................... 4
Estructura:............................................................................................................. 4
Características:...................................................................................................... 5
[[Link]] ................................................................................................. 5
Estructura:............................................................................................................. 5
Características:...................................................................................................... 5
[[Link]]................................................................................................ 5
Estructura:............................................................................................................. 5
Características:...................................................................................................... 5
Nota: ..................................................................................................................... 5
Enunciado ..................................................................................................................... 6
Construcción de los archivos de datos.............................................................................. 7
Pasos para construir los archivos:................................................................................. 7
Aclaraciones ..................................................................................................................... 9
09/09/2004 Página 2 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
NORMAS DEL TRABAJO PRÁCTICO
Armado de la carpeta:
1) La carpeta deberá constar de una carátula brindada por la cátedra y disponible en su página Web.
2) Todo el código deberá estar impreso, incluyendo las primitivas brindadas por la cátedra en hojas
numeradas.
3) Tanto el código, como el informe y el ejecutable, deberán estar en un disquete rotulado con: el
número de grupo, el cuatrimestre, y los datos de los integrantes (nombre, apellido y padrón). El
disquete deberá estar lo suficientemente bien sujetado a la carpeta.
4) Solo las carátulas de las entregas irán permaneciendo en la carpeta, y en la entrega final se
firmará la aprobación del TP en la última de ellas, la cual es el comprobante para poder
presentarse a rendir el coloquio.
5) La carpeta contendrá una sección datos, donde figurarán, en forma ordenada, todos los datos de
los archivos que el grupo armo.
Secciones de la carpeta:
1. Carátula
2. Enunciado
3. Entender el problema
a. Objetivos
b. Resultados
c. Datos
d. Relaciones
4. Diseño de la estrategia
5. Código Impreso
6. Pruebas
7. Conclusiones
Para la evaluación:
En cuando al diseño, se tendrá en cuenta las estructuras utilizadas, optimización de las mismas,
accesos y demás, ideas propias del grupo, ideas novedosas, simplificaciones cuando corresponda,
descripción del diseño y su justificación. Elegancia de la entrega.
En cuanto a la codificación: se tendrá en cuenta la claridad de los códigos, los comentarios, uso de
las estructuras vistas en clase, manejo de punteros, uso de los TDAS dados y creación de nuevos TDA a
conveniencia de la solución encontrada al problema.
09/09/2004 Página 3 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
TRABAJO PRÁCTICO Nº 2
La empresa Algoritmia S.A. dedicada a la urbanización posee información detallada de la ciudad
donde realiza sus emprendimientos. La municipalidad de la ciudad ha contratado sus servicios para que
brinde información a los proyectos comunales que los requieran.
Se tiene acceso a los siguientes archivos de datos:
[[Link]]
Archivo con la totalidad de calles que existen en la ciudad, y sus características.
Estructura:
• IdCalle, int, identificador de la calle
• NombreCorto, char[10], nombre abreviado de la calle
• Nombre, char[30], nombre completo de la calle
• Descripcion, char[50], características adicionales
• Sentido, short int, sentido de circulación respecto de su numeración:
0: ascendente
1: descendete
2: ambos
Características:
Se encuentra totalmente desordenado. El campo IdCalle es único en el ámbito del archivo.
Posee aproximadamente 300 registros.
[[Link]]
Contiene la descripción de todos los tramos en que se divide cada calle. Se considera
tramo al segmento de calle entre dos intersecciones.
Estructura:
• IdCalle, int, identificador de la calle a la que pertenece el tramo
• IdTramo, int, identificador del tramo respecto a la calle
• AlturaIncial, int, altura con que comienza el tramo
• AlturaFinal, int, altura con que termina el tramo
• IdInterseccionInicial, int, identificador de la intersección en la que comienza el tramo
• IdInterseccionFinal, int, identificador de la intersección en la que finaliza el tramo
• CodigoPostal, char[8], cadena alfanumérica con 4 letras y 4 números, NNNN9999
• TiempoMedioRecorrido, int, tiempo medio [seg] que se tarda en transitar el tramo en auto
• Material, short int, material del que está construido el tramo:
0: asfalto
1: ripio
2: piedra
09/09/2004 Página 4 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
Características:
Posee aproximadamente 10.000 registros, encontrándose éstos totalmente desordenados.
El campo IdTramo es único dentor de cada calle pero múltiple en todo el archivo.
[[Link]]
Archivo que posee un registro por habitante de la ciudad.
Estructura:
• IdHabitante, long int, identificador del habitante
• Nombre, char[40]
• Apellido, char[20]
• Sexo, char, M : masculino, F : Femenino
• Edad, short
Características:
A cada habitante le corresponde un solo registro, por lo tanto IdHabitante es único, pero los campos
Apellido y Nombre son múltiples. Contiene aproximadamente 100.000 registros, totalmente
desordenados.
[[Link]]
Archivo de direcciones de los habitantes de la ciudad. Una persona puede tener
más de una dirección, y una dirección ser compartida por más de una persona.
Estructura:
• IdHabitante, long int, identificador del habitante de la dirección.
• IdCalle, int, identificador de la calle a la que corresponde la dirección.
• Altura, int, altura de la dirección
• Piso, short int
• Departamento, char[2]
Características:
No posee orden alguno. Tiene aproximadamente 300.000 registros. Ningún campo es único.
Nota:
A los efectos de ejemplificar la estructura de los archivos se incluye la sección “Construcción de
los archivos de datos”.
09/09/2004 Página 5 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
Enunciado
La empresa solicita un programa codificado en lenguaje C++, que a partir de los datos descriptos
liste por pantalla la totalidad de personas que vivan en un determinado código postal ingresado por
teclado.
El listado deberá poseer el siguiente formato:
Apellido Nombre Sexo Edad NombreCorto Nombre Altura Piso Depto.
de Calle de la
Calle
y estar ordenado: 1º por NombreCorto de ascendente y 2º por Altura descendente..
09/09/2004 Página 6 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
CONSTRUCCIÓN DE LOS ARCHIVOS DE DATOS
Atención: Con fin de simplificar el mapeo de las calles, las alturas fueron cambiadas.
Pasos para construir los archivos:
1) Elegir o crear el mapa de un barrio/ciudad/pueblo a mapear, en el que se tenga en cuenta: a.-
Nombre de las calles; b.- Numeración de las mismas; c.- Dirección del transito en ellas. (ver
ejemplo)
2) Numerar las esquinas (intersecciones de calles) de dicho mapa, con números naturales y sin
repetir, arbitrariamente. (en el ejemplo los números dentro de círculos)
3) Para cada calle:
3.1) Primero insertarla en el archivo de calles (“[Link]”)
En el ejemplo comienzo con Av. Cabildo
IdCalle NombreCorto Nombre Descripción Sentido
1 ACabildo Avenida Cabildo Avenida Transitada 2
2 AFLacroze Avenida Federico Lacroze Repavimentada 2
3.2) Luego para cada tramo de la calle (cuadra), insertar todos los datos dentro del archivo
de tramos (“[Link]”)
09/09/2004 Página 7 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
En el ejemplo:
IdCalle IdTramo AlturaInicial AlturaFinal IdInterseccionInicial IdInterseccionFinal Etc..
1 1 0 99 1 2 …
1 2 100 199 2 3 …
1 3 200 299 3 4 …
1 4 300 399 4 5 …
Realizar ambos pasos para cada calle dentro del mapa. Notar que para muchos tramos,
las esquinas (inicial, final) no son correlativas
4) Luego crear habitantes e insertarlos en el archivo (“[Link]”)
5) Poner para cada habitante una o más direcciones, que correspondan a una dirección valida dentro
del mapa.
09/09/2004 Página 8 de 9
Universidad de Buenos Aires Cátedra: Ing. Mandrafina
Facultad de Ingeniería
75.41 Algoritmos y Programación II Trabajo Práctico Nº2
ACLARACIONES
Para el presente trabajo práctico se deberán tener en cuenta las siguientes consideraciones:
1. Utilizar el TDA Diccionario, desarrollado en el Trabajo Práctico Nº 1.
2. Utilizar el TDA Log, desarrollado en el Trabajo Práctico Nº 1.
3. Si se procesan secuencialmente a los archivos en su totalidad, a lo sumo se lo hará en una sola
oportunidad. Luego se deberán acceder directamente.
4. Los Archivos No Deben Almacenarse en Memoria Principal bajo ninguna circunstancia.
5. Utilizar Estructuras Dinámicas de Lista, Pilas y/o Colas.
6. Se deben diseñar nodos que NO superen los 15 bytes, con Memoria Dinámica Suficiente.
09/09/2004 Página 9 de 9