Een hittegolf is een periode die gekenmerkt wordt door uitzonderlijk hoge temperaturen. Wanneer men precies van een hittegolf begint te spreken, hangt echter in sterke mate af van waar men zich op aarde bevindt. Het KMI1 (België) en het KNMI2 (Nederland) definiëren een hittegolf bijvoorbeeld als een periode van ten minste vijf opeenvolgende dagen met een maximumtemperatuur van 25 °C of meer (zomerse dagen), waarbinnen er ten minste drie dagen zijn met een maximumtemperatuur van 30 °C of meer (tropische dagen). Deze temperaturen worden op anderhalve meter boven het maaiveld gemeten in een zogenaamde weerhut.

hittegolf
De hondsdagen is een aanduiding van de periode van ongeveer 20 juli tot 20 augustus. De naam is gerelateerd aan het sterrenbeeld Grote Hond. De heldere ster Sirius van dat sterrenbeeld komt dan samen met de Zon op en is dan niet te zien aan de ochtendhemel. In Nederland en België is deze periode gemiddeld de warmste van het jaar.

In het dagelijks taalgebruik wordt de term hittegolf echter vaak in de mond genomen zonder dat het weer voldoet aan bovenstaande definitie. Hieronder staan twee fictieve voorbeelden van een echte hittegolf (links) en een warme periode die echter niet als hittegolf aangerekend wordt (rechts).

datum maximumtemperatuur
12 juli 24.7 °C
13 juli 25.1 °C
14 juli 28.9 °C
15 juli 31.0 °C
16 juli 28.6 °C
17 juli 30.6 °C
18 juli 32.4 °C
19 juli 23.0 °C
datum maximumtemperatuur
9 augustus 26.0 °C
10 augustus 24.1 °C
11 augustus 29.4 °C
12 augustus 32.8 °C
13 augustus 34.0 °C
14 augustus 25.5 °C
15 augustus 20.1 °C
16 augustus 19.0 °C

Opgave

Schrijf een bash shell script forecast dat een reeks floating point getallen inleest uit stdin. Deze getallen stellen de maximumtemperaturen voor die in een weerhut gemeten werden voor alle opeenvolgende dagen uit een bepaalde periode. Elk van de getallen staat op een afzonderlijke regel en de reeks wordt afgesloten door een regel die het woord stop bevat. Het script moet de tekst heatwave uitschrijven naar stdout en eindigen met exit status 0 als binnen de gegeven periode minstens één hittegolf werd waargenomen volgens de definitie van het KMI en het KNMI. Anders moet het script de tekst no heatwave uitschrijven naar stdout en eindigen met exit status 1.

Voorbeeld

In deze interactieve sessie gaan we ervan uit dat de huidige directory de tekstbestanden temperatures.01.txt3 en temperatures.02.txt4 bevat.

$ forecast < temperatures.01.txt5
heatwave
$ echo $?
0
$ forecast < temperatures.02.txt6
no heatwave
$ echo $?
1

Epiloog

Een uitbarsting van hete lucht trok afgelopen zondagavond van zuid naar noord door delen van New Ulm en Renville County. Het duurde maar een minuut of twee, maar de hitte was zo intens dat mensen uit hun huizen stormden en dachten dat ze in brand stonden.

— Minneapolis Tribune, 10 juli 1879