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.
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 |
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.
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
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