Hier werken we de oefening METAR verwerken voor luchtvaart1 verder af.

Deze oefening is optioneel!

ElementsyntaxVertalingUitleg
EBBR Bestaat altijd uit 4 letters Brussel Zaventem Luchthaven: ICAO code
150950Z Bestaat altijd uit 6 cijfers + 'Z' aanduiding voor zulu tijd (=UTC tijd) 15de dag van de maand, 09u50 UTC Tijdstip: DDUUMMZ Staat voor dag van de maand + uur en minuut van uitgave in zulu tijd
02011KT Bestaat altijd uit 5 cijfers + 'KT' aanduiding voor knopen Wind vanuit 20° met een sterkte van 11 knopen. Wind: wordt aangeven met een richting (3 cijfers) en een sterkte in knopen (2 cijfers)
8500 Bestaat altijd uit 4 cijfers Zichtbaarheid is 8.5 km. Zichtbaarheid: de afstand van zichtbaarheid wordt aangeven in meter. Wanneer deze waarde gelijk is aan 9999, betekent dit zichtbaarheid >10km.
RA+ Bestaat altijd uit 2 letters + een optionele +/- karakter Het regent zwaar Weerfenomeen: worden beschreven met codes: "Het regent" (RA), "Het mist" (BR), "Het sneeuwt" (SN), "Het vriest" (FZ).
De optionele + of - ernaast geven zwaar of licht aan.
BKN038 Bestaat altijd uit 3 letters en 3 cijfers. met aanzienlijke wolken op 3800 voet Wolkenformaties: de eerste 3 letters geven aan weinig (FEW = few), verspreide (SCT =scattered), aanzienlijke (BKN = broken) of overtrokken (OVC = overcast).
De 3 laatste cijfers bepalen de hoogte van de wolken in honderden voet.
Q1028 Begint altijd met een Q en bestaat verder uit 4 cijfers. 1028 hectopascal QNH: luchtdruk op zeespiegelniveau in hectopascal

In deze opgave gaan we enkel controleren of het bericht het juiste formaat heeft. Je controleert dus het "aantal" input parameters, en of het formaat van elke deeltje correct is. Hiervoor worden logische functies geschreven:

  1. Schrijf de functie check die controleert of het bericht dat als enige argument wordt meegegeven, het correcte formaat heeft.
  2. Omdat de vorige functie heel veel dingen moet controleren voeg je verplicht minstens 5 logische functies toe, die telkens een deelaspect controleren. Uiteraard gebruik je die logische functies in de functie check. De naam voor die logische functies begint altijd met check, vb, check_luchthaven
  3. Gebruik de logische functies in de functie check. Hierdoor kan je het aantal if-statements in die methode beperken. Dit wordt maar beperkt gecontroleerd: er wordt gecontroleerd of je niet meer dan 9 if-statements hebt in die functie.

Opmerking

Er zullen extra testsets worden toegevoegd na de deadline van indienen. Zorg dus dat je oplossing alle situaties correct afhandelt.

Voorbeelden

>>> check("EBBR 150950Z 02003KT 8500 RA+ BKN038 Q1028")
True
>>> check("EGG 021050Z 01025 9999 FZ FEW085 Q1035")
False  

Deze oefening is optioneel!