In deze opgave bouwen we een aantal klassen, die van een WoordenBoek een aantal metrieken bepaalt. Deze metrieken zijn allen geheel, en elke metriek is een instantie van een klasse waarin de methode bereken_metriek() gedefinieerd is. Deze methode heeft één argument van het type WoordenBoek.

Klasse Woord

Een object van deze klasse houdt een woord als string bij. Programmeer het onderstaande:

Klasse WoordenBoek

Deze klasse houdt een reeks Woorden bij en beschikt daarnaast over een methode om een metriek op dit WoordenBoek uit te rekenen. Programmeer:

Klasse AantalWoordenLangerDan

Deze klasse beschikt over een methode bereken_metriek(): de metriek is het aantal woorden met een lengte strikt groter dan een vooropgegeven lengte. Programmeer volgende methoden:

Klasse IndexMeesteMedeklinkers

Ook deze klasse beschikt over de methode bereken_metriek(). De metriek is nu het rangnummer van het woord dat het meeste medeklinkers telt. Programmeer de methode bereken_metriek(). Hierbij worden de karakters a, e, i, o, u en y alsook A, E, I, O, U en Y als klinkers beschouwd. Alle andere karakters worden als medeklinkers beschouwd. Indien meerdere woorden een maximaal aantal medeklinkers hebben, wordt de index van het eerste woord teruggegeven. Let erop dat je geen ongeldige woorden meetelt !

Voorbeeld

w0 = Woord('woord') 
w1 = Woord('een woord') 
w2 = Woord('123 a')	
print(w0)	#[woord]
print(w1)	#[?]
print(w2)	#[?]

w = ["huis","angstschreew","inspirerend","vernieuwend","Python","Pascal","voorwaarts","exponentieel"]
woorden = [Woord(i) for i in w]
boek = WoordenBoek(woorden);
metrieken = [AantalWoordenLangerDan(5), IndexMeesteMedeklinkers(), AantalWoordenLangerDan(6)]
for m in metrieken: 
    print(boek.bereken_metriek(m)) #7 , 1, 5