In
Demografie - met foutafhandeling wordt verondersteld dat de tabel met 'data' exact drie kolommen heeft - de laatste kolom bevat de data die moet verwerkt worden.
Op
https://nl.wikipedia.org/wiki/Lijsten_van_landen vind je veel meer 'data' over landen, maar de tabellen hebben meer dan drie kolommen en soms bevatten meerdere kolommen 'data' die kan verwerkt worden. In deze oefening wordt hiervoor een oplossing gezocht.
Om de eerste stap van de verwerking te vereenvoudigen werd de tabel van https://nl.wikipedia.org/wiki/Lijst_van_landen_naar_import omgezet naar import.csv en de tabel van https://nl.wikipedia.org/wiki/Lijst_van_landen_naar_staatsschuld naar staatsschuld.csv. Open deze bestanden in Excel. Beide bestanden hebben meerdere kolommen met interessante numerieke informatie.
Opgave
Schrijf de volgende functies:
- Schrijf de hulp-functie geefdata(lijn, kolom). Het eerste argument lijn bevat één regel uit een .csv bestand. Het tweede argument kolom is de het nummer van de kolom die de data bevat. De functie geeft de numerieke waarde terug van de data in de gevraagde kolom. Gebruik float voor de data.
- De functie zoek_grootste(type, kolom) heeft als argument het type informatie dat gezocht wordt. De eerste parameter type beschrijft welke soort informatie moet opgehaald worden. Mogelijke waarden voor dit type zijn: import, staatsschuld, inwoners, oppervlakte. De tweede parameter kolom is het nummer van de kolom die de gewenste 'data' bevat. De functie leest het juiste bestand in en geeft de grootste waarde terug van de gevraagde kolom.
Merk op dat de informatie niet langer geordend is op elke kolom die je wenst op te vragen! De kolommen worden genummerd vanaf
1.
Foutafhandeling
- Een lijn kan te weinig kolommen hebben. De (hulp-)functie geefdata handelt de fout NIET af.
De functie zoek_grootste negeert deze lijnen, maar gaat wel verder met de verwerking.
- Als het bestand niet gevonden wordt geeft de functie zoek_grootste de waarde 0 terug.
- Indien de tabel te weinig kolommen bevat, dan geeft de functie zoek_grootste de waarde 0 terug.