Fundamentos de la programación y la informática
Grado en ingeniería aeroespacial en vehículos aeroespaciales 2019-2020
Escuela Técnica Superior de Ingeniería de Telecomunicación
Universidad Rey Juan Carlos


Práctica 9.1. Procesamiento de un fichero

En esta práctica te ejercitarás con el procesamiento de un fichero en formato de texto con campos de ancho fijo. Escribe un programa con el nombre ~/fpi/practica09/aeropuertos.pas, conforme a la siguiente especificación:

  1. En este enlace encontrarás un fichero con los datos de los principales 9085 aeropuertos del mundo, con su código IATA y sus coordenadas. Guárdalo en ~/fpi/practica09/aeropuertos.txt

  2. La información está en campos de ancho fijo: código IATA, latitud, longitud y nombre del aeropuerto. Aquí puedes ver su estructura:

             1         2         3         4         5         6         7
    123456789012345678901234567890123456789012345678901234567890123456789012
    AAA -17.353-145.510Anaa Airport
    AAB -26.693 141.048Arrabury Airport
    AAC  31.073  33.836El Arish International Airport
    AAD   6.096  46.638Adado Airport
      
  3. El programa leerá el fichero, lo introducirá en un array de 10000 registros y en lo sucesivo trabajará siempre a partir del array.

  4. Observa que cuando vayas a procesar el array, no podrás recorrer todos los elementos, sino solo algunos, los que tengan datos. En este caso los 9085 primeros. Pero este valor no debería ser ni un número mágico ni una constante, porque entonces el programa dejaría de funcionar si el fichero cambiase ligeramente. Haz lo siguiente:

  5. Haz que tu programa escriba en pantalla N registros al azar, donde N será una constante local del cuerpo principal al que le puedes dar el valor que quieras. La escritura será similar a esta:

    Zürich Airport. Código: ZRH. Coordenadas: 47.465, 8.549
    King Mswati III International Airport. Código: SHO. Coordenadas: -26.359  31.717
      

Práctica 9.2. Búsqueda en un array de registros

Copia tu práctica ~/fpi/practica09/aeropuertos.pas en el fichero ~/fpi/practica09/busca_codigo.pas y modifícalo de la siguiente forma:

  1. No borres los subprogramas del ejercicio anterior que ya no necesites. Simplemente comenta (inhabilita) las llamadas que no procedan.

  2. El programa leerá el fichero y guardará su contenido en un array de registros, exactamente igual que en el ejercicio anterior.

  3. El programa pedirá al usuario que introduza un código de tres caracteres, y repetirá la petición las veces necesarias hasta que el usuario efectivamente escriba una cadena de tres caracteres (caracteres cualquiera, no necesariamente letras).

  4. El programa buscará en el array el aeropuerto con ese código. Si lo encuentra, lo mostrará en pantalla. Si hiciste bien el ejercicio anterior, tendrás un procedimiento para escribir los datos de un aeropuerto y podrás reutilizarlo. Si no encuentra ningún aeropuerto con ese código, mostrá el mensaje adecuado.

Práctica 9.3. Búsqueda en un array de registros

Copia este fichero en ~/fpi/practica09/llegadas.txt y escribe un programa con nombre ~/fpi/practica09/llegadas.pas según la siguiente especificación

  1. El programe leerá el fichero y guardará sus datos en un array de registros, como el ejercicio anterior. Usa un array de 500 elementos, cuenta el número de líneas del fichero, muéstralo en pantalla y guarda ese valor en una variable para procesar el array, todo como en los ejercicios anteriores.

  2. El formato de datos es el siguiente:

             1         2         3         4         5         6         7
    123456789012345678901234567890123456789012345678901234567890123456789012
    21:05PARIS ORLY     AF6226AIR FRANCE                     T2Arrived  21:16
    21:05PARIS ORLY     A55226HOP                            T2Arrived  21:16
    21:15GENEVA         U21385EASYJET                        T2Cancelled
      
  3. El programa no solo mostrará el número de líneas (o lo que es lo mismo, el número total de vuelos), sino también el número de vuelos en estado Arrrived y el número de vuelos en estado Cancelled

  4. El programa mostrará los datos de todos los vuelos Cancelled.

Revisión de los nombres de los ficheros

Ejecuta ~mortuno/revisa practicas fpi para comprobar que los nombres de los programas son los correctos.