Iedereen die ooit al eens een lange vlucht naar het oosten of het westen heeft gemaakt, kent ongetwijfeld het fenomeen van de jetlag. Overdag voel je je moe en wil je gaan slapen, en ‘s nachts lig je wakker in bed. Na enkele dagen heb je je bioritme echter volledig aangepast aan de lokale omstandigheden. Om te berekenen hoeveel dagen je nodig hebt om te herstellen van een jetlag, ontwikkelde de Internationale Burgerluchtvaartorganisatie (ICAO) de volgende formule
\[d = \frac{\frac{u}{2}+(z-3)+v+a}{10}\]Hierbij stelt \(u\) het aantal vlieguren van de reis voor, en \(z\) het aantal tijdszones dat daarbij overbrugd worden.
De parameters \(v\) en \(a\) worden bepaald door de vertrek- en aankomsttijden, op basis van onderstaande tabel:
vertrektijd | aankomsttijd | |
---|---|---|
tijdsblok | v | a |
8:00 en 12:00 | 0 | 4 |
12:00 en 18:00 | 1 | 2 |
18:00 en 22:00 | 3 | 0 |
22:00 en 01:00 | 4 | 1 |
01:00 en 08:00 | 5 | 3 |
Het tijdsblok in de eerste kolom is steeds exclusief het beginuur en inclusief het einduur. Alle tijden worden, ter vereenvoudiging enkel in uren verwerkt. Vertrek- en aankomsttijden zijn steeds aangegeven in de lokale tijd.
Schrijf een programma dat de waarden inleest voor \(u\), \(z\), de aankomsttijd en de vertrektijd (in die volgorde). Elke invoer komt op een afzonderlijke regel. Je mag veronderstellen dat er altijd positieve natuurlijke getallen worden ingelezen. (Alle tijden worden als gehele getallen ingegeven.)
Het programma schrijft uit hoeveel aantal dagen er nodig zijn om te herstellen van de jetlag na de vlucht (zie voorbeeld).
Je vliegt van New York Kennedy Airport naar London Heathrow. De vlucht vertrekt om 7:00 lokale tijd in New York en komt aan om 19:00 lokale tijd in Londen. In Londen is het vijf uur later dan in New York. Het totaal aan vlieguren \(u = 12 - 5 = 7\). Er worden vier tijdzones overbrugd, dus \(a=4\).
De ingelezen waarden zijn: 7 4 7 19 op aparte lijnen.
>>> main()
0.95
Uit de tabel vind je \(v=5, a=0\).
Je moet het hoofdprogramma toevoegen in de gegeven procedure main()
.
Het tijdsblok in de eerste kolom is steeds exclusief het beginuur en inclusief het einduur.
Deze parameters worden gewoon ingelezen, en moet je dus niet zelf berekenen.
v
en a
?Beschrijf de vijf intervallen met if-elif-else
if-else
die de grenzen beschrijft?Neen, je kan de voorwaarden beter vernestelen, zodat ze niet onafhankelijk van elkaar zijn.
v
:als vertrek <= 1 stel v = 4 anders als vertrek <= 8 stel v = 5 anders als vertrek <= 12 stel v = 0 anders als vertrek <= 18 stel v = 1 anders als vertrek <= 22 stel v = 3 anders stel v = 4