Práctica 1.b Introducción A Los Contenedores: Vectores (II) Sesiones de Prácticas: 2
Práctica 1.b Introducción A Los Contenedores: Vectores (II) Sesiones de Prácticas: 2
Práctica 1.b Introducción A Los Contenedores: Vectores (II) Sesiones de Prácticas: 2
Sesiones de prácticas: 2
Introducción
En la primera parte de esta práctica se ha hecho una introducción a un vector básico que se adapta
fácilmente a diferentes contextos en los que se quiera hacer uso de ellos al ser implementado como
una plantilla. En esta segunda parte, introduciremos algunas modificaciones sobre la práctica
resultante de la sesión anterior hasta implementar un vector dinámico. Este tipo de contenedores
intentan mejorar las funcionalidades de un vector básico de C tales como incrementar (o decrementar)
su tamaño máximo a lo largo de la ejecución de la aplicación gestionando de forma eficiente la
memoria requerida para ello.
Objetivos
Descripción de la EEDD
Con la EEDD vector dinámico implementada, la instanciamos para gestionar una serie de aeropuertos
localizados en distintos lugares del mundo de forma que podamos añadir uno nuevo dinámicamente al
vector sin preocuparnos del tamaño que este necesite. Para ello, almacenaremos los datos desde el
fichero que aparece en Platea junto a este enunciado de la práctica (“aeropuertos.csv”) en el nuevo
vector dinámico de aeropuertos. El diagrama UML de la práctica es el siguiente:
La clase Aeropuerto tendrá los atributos que aparecen en el UML más los constructores y operadores
que necesiteis.
Crear un proyecto con un programa de prueba que realice las operaciones que se detallan a
continuación.
● Modificar la plantilla VDinamico<T> para añadir la funcionalidad enumerada anteriormente.
● Leer el fichero “aeropuertos.csv” y almacenar los aeropuertos en un vector dinámico (usar el
código adjunto del main.cpp).
● Ordenar el vector de mayor a menor y mostrar los id de los primeros 30 aeropuertos.
● Ordenar el vector de menor a mayor y mostrar los id de los primeros 30 aeropuertos.
● Una vez ordenado el vector, buscar los aeropuertos con los id 345166, 6640, 6676, 345364 y
6778, mostrando su posición en el contenedor y teniendo en cuenta que pueden no existir.
● Eliminar todos los aeropuertos cuyo continente sea “NA”. Para ello, pasar todos los
aeropuertos que cumplan la condición a un nuevo vector dinámico y, tras esto, borrar los
aeropuertos del vector dinámico original. Mostrar el tamaño lógico de ambos vectores y toda
la información de los primeros 20 aeropuertos del nuevo vector. Si se usan vectores auxiliares,
deberán declararse como VDinamico<T>.
● Aquellos que hagáis las prácticas por parejas tendréis que estudiar los tiempos de los cuatro
apartados anteriores. Para el resto es opcional.
2. Deben comprobarse todas los posibles errores y situaciones de riesgo que puedan ocurrir
(desbordamientos de memoria, parámetros con valores no válidos, etc.) y lanzar las
excepciones correspondientes, siempre que tenga sentido. Leer el tutorial de excepciones
disponible en el repositorio de la asignatura en docencia virtual.