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


Cambios en el documento

Práctica 8.1. Uso básico de un Array

Escribe un programa en el fichero ~/fpi/practica08/tabla.pas que:

Práctica 8.2. Conversión de minutos desde el epoch en hora

Los formatos que las personas usamos normalmente para representar fechas y horas son muy poco apropiados para los programas. Hacer cálculos con años de 365 o 366 días, meses de 28, 29, 30 o 31 días, días de 24 horas, horas de 60 minutos, minutos de 60 segundos, segundos de 10 décimas, etc es complicado.

Los sistemas informáticos usan internamente formatos más manejable. Uno muy habitual es indicar los tiempos como segundos o milisegundos desde un instante denominado epoch, típicamente el 1 de enero de 1970, aunque también se usan otros. En esta práctica usaremos un formato similar pero simplificado, representaremos las horas de un día como los minutos transcurridos desde las 00:00.

El proceso típico es:

  1. Leer valores en formatos humanos y convertirlos lo antes posibles a un formato más manejable.

  2. Representar, almacenar y operar con la información en este formato manejable.

  3. Justo antes de tener que presentar la información a las personas, lo más tarde posible, convertir de nuevo a formato humano.

Escribe un programa con el nombre ~/fpi/practica08/hora.pas que contenga una función llamada minutos_a_hora que:

Ejemplos:

Observa que:

Práctica 8.3. Array de registros

En esta práctica usarás un array de registros, que contendrá la información de llegada de los vuelos a un aeropuerto.

Escribe un programa en el fichero ~/fpi/practica08/llegadas.pas que:

Práctica 8.4. Ordenación de un array sencillo de registros

Ahora harás un ejercicio sencillo de ordenación de un array de registros, trabajarás con la puntuación de un grupo de jugadores en un juego de mesa. Escribe un programa en el fichero ~/fpi/practica08/ordena.pas según esta especificación:

Sugerencia: empieza buscando la posición del elemento ZZZ, réstale 1 y usa este valor para recorrer el array. Si no existe elemento ZZZ, el programa debe mostrar un mensaje de error y finalizar.

Práctica 8.5. Ordenación de un array de registros por varios criterios

Ahora ordenarás una array un poco más complejo, el de la práctica 8.3

Cuando tu programa ~/fpi/practica08/llegadas.pas funcione correctamente, cópialo en el fichero ~/fpi/practica08/llegadas_ordenadas.pas. Copiar un programa en otro programa en general no es deseable, lo correcto es usar desde un programa las funciones de otro programa. Pero por simplificar estas prácticas iniciales, lo hacemos de esta forma.

Modifica ~/fpi/practica08/llegadas_ordenadas.pas para que se corresponda con la siguiente especificación:

Práctica 8.6. Conversión de hora en minutos desde el epoch

Esta práctica será la inversa de la práctica 8.2.

Escribe un programa con el nombre ~/fpi/practica08/hora2.pas que contenga una función llamada hora_a_minutos que:

Práctica 8.7. Filtrado de un array ordenado

Cuando tu programa ~/fpi/practica08/llegadas_ordenadas.pas funcione correctamente, hazle una copia con nombre ~/fpi/practica08/llegadas_filtradas.pas y modifica esta última para que:

  1. Le pida al usuario una hora inicial, en formato hh:mm. Se lo pedirá todas las veces necesarias hasta que el valor recibido sea correcto, mostrando un error en los casos incorrectos.

  2. Le pida al usuario una hora final, en formato hh:mm. Se lo pedirá todas las veces necesarias hasta que el valor recibido sea correcto, mostrando un error en los casos incorrectos.

  3. La hora final ha de ser mayor o igual que la final. En otro caso, el programa mostrará un error y finalizará.

  4. Si no hay errores, el programa mostrará todos los vuelos cuya hora real de llegada esté dentro del intervalo de tiempo indicado, extremos incluidos. Los resultados estarán ordenados por tiempo real de llegada.

  5. Si no hay ninguna llegada en ese intervalo, el programa lo indicará con un mensaje.

Observa que:

Revisión de los nombres de los ficheros

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