Definición de tipos y registros
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


Práctica 6.1. Dia anterior

En este ejercicio practicarás el uso de enumerados.

  1. Copia el ejemplo siguiente_03 de las transparencias del tema 6 en un fichero (donde quieras). Compílalo, observa su resultado y analízalo.

  2. Haz una copia de este fichero con el nombre ~/fpi/practica06/dia_anterior.pas Programa una función llamada dia_anterior(), análoga a dia_siguiente().

No es necesario que este enunciado especifique más qué debe hacer la función: con ese nombre, tiene que resultarte obvio qué hará.

Práctica 6.2 Fases de vuelo, con enumerados

Ahora mejoraremos el programa de las fases de vuelo usando enumerados en vez de cadenas.

  1. Copia el programa ~/fpi/practica05/fases_vuelo.pas en ~/fpi/practica06/fases_vuelo.pas

  2. Modifícalo para que en él se defina:

    El tipo de datos TipoFasesVuelo, con los valores despegue, ascenso_inicial, ascenso_final, crucero, descenso_inicial, descenso_final, aterrizaje y anormal.

    (Cosideraremos que anormal incluye el caso de los booleanos acelerando y frenando inconistentes)

  3. Modifícalo para que en él se defina:

    El tipo de datos TipoUnidadVelocidad, con los valores mps, kmh, y kn.

  4. Haz todas las modificaciones necesarias para que:

    1. Ninguna función acepte como parámetro de entrada las unidades como cadenas de texto, sino como TipoUnidadVelocidad

    2. Ninguna función maneja internamente las unidades como cadenas de texto, sino como TipoUnidadVelocidad

    3. La función especificada en la práctica 4.3.1 devuelva TipoFasesVuelo

    En otras palabras: que todo el programa use continuamente tipos enumerados y que nunca use cadenas cuando puedan usarse tipos enumerados.

    En otras palabras: el programa solo podrá usar cadenas de texto cuando sea imprescindible, esto es, para construir mensajes destinados al usuario, del estilo de

    Velocidad: 100 kn (51.444 m/s, 185.200 Km/h). Fase del vuelo: Despegue.

    Naturalmente, esto solo puede ser una cadena, nunca podría ser un enumerado. En todos los demás casos, tienes que usar enumerados.

  5. La práctica 4.3.2 decía Si las unidades no son las previstas, (la función devolverá) el mensaje Unidades erróneas. Observa que usando enumerados, esta comprobación ya no tiene sentido. Las unidades siempre serán alguna de las previstas, el compilador nunca permitiría que una velocidad de TipoUnidadVelocidad fuera por ejemplo metrosporsegundo. (Trabajando con cadenas, era necesario que nosotros como programadores tratáramos el error, para el compilador la cadena metrosporsegundo sería válida.

    Por tanto, elimina del código esta comprobación que ya no tiene sentido.

Práctica 6.3. Nota media, con registros.

En esta práctica empezarás a usar registros

  1. Copia el programa ejemplo_101_nota_fpi.pas en ~/fpi/practica06/nota_media.pas

  2. Haz todos los cambios necesarios para que todas las funciones usen un único parámetro de entrada, un registro. Y no tres números reales.

Práctica 6.4. Sustentación, con registros

Escribe un programa llamado ~/fpi/practica06/sustentacion.pas que calcule la fuerza de sustentación de un avión en Newtons a partir de la densidad del aire, la velocidad del avión en m/s, la superficie alar y el coeficiente de sustentación.

El cálculo principal lo hará una función que:

Puedes usar todos lo elementos de Pascal que ya conocemos: variables, constantes, sentencias if-then-else, etc

Revisión de los nombres de los ficheros

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