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
.
?
opgeslagen.
get_woord()
geeft het opgeslagen woord (doorgegeven bij constructie) als resultaat terug (dus van het type string). Indien een ongeldig woord als argument
aan de constructor doorgegeven werd, dan is het resultaat van deze methode de tekst ?
.
__str__()
levert het opgeslagen woord tussen [
en ]
. Indien het om een ongeldig woord gaat, is het resultaat [?]
.
Woord
en bij en beschikt daarnaast over een methode om een metriek op dit WoordenBoek
uit te rekenen. Programmeer:
WoordenBoek
wordt op deze lijst van Woord
en geïnitialiseerd.
get_woorden()
(zonder argumenten) levert de lijst van opgeslagen Woord
en als resultaat.
get_woord()
met 1 argument van het type int
. Dit argument specificeert het rangnummer van een Woord
in het WoordenBoek
. Het Woord
met dit
rangnummer wordt als resultaat teruggegeven. Hierbij worden de rangnummers van de originele lijst (zie constructor) gerespecteerd. Indien het om een ongeldig rangnummer gaat, wordt het woord met inhoud ?
als resultaat teruggegeven.
bereken_metriek()
. Deze methode berekent de waarde van de metriek die als argument wordt meegegeven. De metriek wordt toegepast op dit WoordenBoek
en geeft deze berekende waarde als resultaat terug (een int
).
bereken_metriek()
: de metriek is het aantal woorden met een lengte strikt groter
dan een vooropgegeven lengte. Programmeer volgende methoden:
int
. Woorden met een lengte strikt groter dan dit argument, dienen geteld te worden.
bereken_metriek()
: bepaalt het aantal Woord
en van het argument-WoordenBoek
met een lengte strikt groter dan het getal opgegeven in de constructor.
Dit aantal wordt als resultaat teruggegeven. Let op dat je geen ongeldige woorden meetelt!
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 !
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