Deze opgave verwerkt informatie van Wikipedia, o.a.
https://nl.wikipedia.org/wiki/Lijst_van_landen_naar_inwonertal en
https://nl.wikipedia.org/wiki/Lijst_van_landen_naar_oppervlakte.
Elke pagina bevat een tabel met 'data' (aantal inwoners, oppervlakte). Om de verwerking te vereenvoudigen werd deze tabel omgezet naar .csv-bestanden: inwoners.csv en oppervlakte.csv. Je kan deze bestanden downloaden en openen met Excel. Elk bestand heeft 3 kolommen. Merk op dat de informatie geordend is op de laatste kolom.
Schrijf nu volgende functies:
- De (hulp-) functie geefdata(lijn) heeft een lijn als argument. Dit argument bevat één regel uit een .csv bestand. De functie geeft de numerieke waarde terug van het geheel getal dat in de derde kolom van lijn staat. De derde kolom begint altijd met het getal, eventueel gevolgd door een spatie en andere tekst.
- De functie zoek_grootste(type) heeft als argument het type informatie dat gezocht wordt. Mogelijke waarden voor dit type zijn: inwoners, oppervlakte. De functie leest het juiste bestand in en geeft de grootste waarde (uit de derde kolom) terug.
- De functie tel_groter(type, grens) telt het aantal landen die voor het opgegeven type een waarde hebben die groter is dan de opgegeven grens. Ook hier wordt de informatie uit de derde kolom gecontroleerd. De grens wordt doorgegeven als geheel getal.
Er zijn bijvoorbeeld 4 landen die een oppervlakte hebben die groter is dan 9.000.000 km2.
Foutafhandeling
Volgende situaties moeten correct worden afgehandeld:
- Een lijn kan meer of minder dan drie kolommen hebben, of in de derde kolom wordt geen getal gevonden.
Foutafhandeling:: de (hulp-)functie geefdata handelt de fout NIET af. De functies zoek_grootste(type) en tel_groter(type, grens) negeren die lijn, maar gaan wel verder met de verwerking.
- Voor het type dat gevraagd wordt is er geen bestand met de juiste naam: beide functies geven 0 terug.
Dodona controleert ook andere informatie, en zal ook bestanden verwerken die fouten bevatten.