Terwijl de onderzeeër onder het oppervlak van de oceaan duikt, scant hij met zijn sonar automatisch de zeebodem af. Op een klein scherm verschijnt een rapport met de gegevens die de sonar oppikt (de invoer voor deze opgave): elke regel bevat een peiling van de diepte van de zeebodem terwijl de sonar steeds verder weg van de onderzeeër kijkt.
Stel bijvoorbeeld dat je het volgende rapport te zien krijgt:
199
200
208
210
200
207
240
269
260
263
Dit rapport geeft aan dat de sonar, die steeds verder weg scant vanaf de onderzeeër, dieptes gepeild heeft van 199
, 200
, 208
, 210
, enzoverder.
De eerste opdracht is om erachter te komen hoe snel de diepte toeneemt, zodat je weet waar je mee te maken hebt - je weet nooit of de sleutels door een oceaanstroom, of een vis, of iets anders worden meegesleurd naar dieper water.
Hiervoor tel je het aantal keer dat de dieptemeting toeneemt ten opzichte van de vorige meting. (Er is geen meting vóór de eerste meting.) In het bovenstaande voorbeeld zijn de wijzigingen als volgt:
199 (NVT - geen vorige meting)
200 (toename)
208 (toename)
210 (toename)
200 (afname)
207 (toename)
240 (toename)
269 (toename)
260 (afname)
263 (toename)
In dit voorbeeld zijn er 7
metingen die groter zijn dan de vorige meting.
Hoeveel metingen zijn er groter dan de vorige meting? Bepaal dit op de volgende manier:
sonar
waaraan de padnaam (String
) moet doorgegeven worden van een tekstbestand met het rapport van een sonar. Elke regel van het rapport bevat een meting van de diepte van de zeebodem. De functie moet het aantal metingen (Int
) teruggeven dat groter is dan de vorige meting.In deze interactieve sessie gaan we ervan uit dat de tekstbestanden sweep01.txt
1 en sweep02.txt
2 zich in de huidige directory bevinden.
> sonar("sweep01.txt")
7
> sonar("sweep02.txt")
1696
Jordan Ranson (@jordanranson3) animeerde zijn oplossing.