You are on page 1of 6

Oefentoets bobj (moduleleider: Saïd Basmagi

)

Pagina 1 van 6


Opleiding: Bio-informatica
Studiejaar: 2013-2014
Waardering: 100 punten
Cesuur: 55 punten geeft het cijfer 5,5
Aantal opdrachten: 3
Deelvragen: Nee
Kladpapier toevoegen: Ja
Wijze toetsing: Open boek
Enige toegestane hulpmiddelen: Schoolcomputer; met uitzondering van het
internet

Lees dit eerst aandachtig door!!

De geprogrammeerde scripts worden via een USB stick ingeleverd.
De puntenverdeling is bij de opdrachten aangegeven én staat in onderstaande tabel.

Opdracht Punt Opdracht Punt Opdracht Punt
1 20 2 35 3 45


Opmerkingen bij de programmeeropdrachten:

Lees de opdrachtomschrijvingen goed door.
Je code mag code-technisch geen herhalingen bevatten. Herhalingen kunnen worden
opgelost door het schrijven van methodes!


Tip:
Sla je gemaakte scripts regelmatig op onder een andere naam. Dit helpt je meestal om sneller
terug te gaan naar werkende scripts.



Veel succes!

Saïd Basmagi & Jan Oliehoek

Oefentoets bobj (moduleleider: Saïd Basmagi)

Pagina 2 van 6

Opdracht 1 (20 punten)

Maak een UML-klassediagram die hoort bij de volgende omschrijving:

De docenten bioinformatica willen een programma schrijven waarmee ze het gewicht, de
lengte en de haarkleur van een student kunnen koppelen aan diens cijfer voor de module
Breg. Op die manier kunnen ze bijvoorbeeld inschatten of het voor de tweedejaars student
Sjaak, die Breg nog moet herkansen, raadzaam is om zijn haar te verven. Het programma
moet de gegevens van alle studenten in kunnen lezen en moet als output rapporten kunnen
genereren die verbanden tussen de gegevens laten zien.

Maak hierbij gebruik van de volgende stappen om tot een UML-klassediagram te komen:

Stap 1: Lees de casus aandachtig door.
Stap 2: Benadruk alle zelfstandige naamwoorden, getallen en namen.
Stap 3: Maak een lijst van alle benadrukte woorden.
Stap 4: Verwijder duplicaten.
Stap 5: Verwijder woorden met dezelfde betekenis.
Stap 6: Verwijder onnodige woorden die niets met de vraag te maken hebben.
Stap 7: Verwijder woorden die simpele waarden zijn.
Stap 8: Verwijder woorden die objecten representeren.
Stap 9: Verwijder woorden die attributen representeren.

Laat stap voor stap zien welke beslissingen je hebt genomen. Laat dus duidelijk bij iedere
stap zien wat je af laat vallen en waarom.

Maak het UML-klassediagram in Microsoft Word, Excel of PowerPoint, waarbij je gebruik
maakt van tekstvakken of van een tabel om het UML-klassediagram er netjes uit te laten zien.
Sla het op als PDF en lever het bestand in als <Studentnummer>_opdr1.pdf.
Oefentoets bobj (moduleleider: Saïd Basmagi)

Pagina 3 van 6

Opdracht 2 (35 punten)

De Body Mass Index (BMI) is een index die de verhouding tussen lengte en gewicht bij een
persoon weergeeft. De BMI wordt veel gebruikt om een indicatie te krijgen of er sprake is van
over- of ondergewicht.
De waarde van de BMI wordt als volgt bepaald:
BMI
massa
lengte
2

Waarbij de massa in kilogrammen wordt uitgedrukt en de lengte in meters.
Onderstaand voorbeeld licht de berekening toe:
Een persoon van 80 kg en een lengte van 180 cm heeft een BMI van:

80
1,80
2
80 kg
1,80 m 1,80 m
80 kg
3,24 m
2
24,6913580247 kg m
2
25 kg m
2

Zoals eerder gemeld geeft de BMI een indicatie of er sprake is van over- of ondergewicht.
De WHO hanteert de volgende tabel voor volwassenen om de BMI te indexeren:

BMI (kg/m
2
) Interpretatie
Minder dan 18,5 Ondergewicht
18,5 tot 25 Normaal gewicht
25 tot 27 Licht overgewicht
27 tot 30 Matig overgewicht
30 tot 40 Ernstig overgewicht
Meer dan 40 Ziekelijk overgewicht

Hieronder staat de UML weergegeven van de BMI.

BMI

massa
lengte



__init__(massa, lengte)
get_massa()
get_lengte ()
set_massa(massa)
set_lengte(lengte)
get_BMI()
get_interpretatie()



Oefentoets bobj (moduleleider: Saïd Basmagi)

Pagina 4 van 6

Maak van bovenstaand UML diagram een werkende klasse.
Het moet voor de gebruiker mogelijk zijn om een object te creëren dat de waarden kan
wijzigen en een antwoord voor elke gewenste massa en of lengte kan teruggeven. Omdat het
een formule is, is het niet mogelijk om iets anders op te geven dan alleen getallen. Als de
gebruiker voor een bepaald attribuut iets anders opgeeft dan een getal, dan zorgt de klasse
ervoor dat het attribuut automatisch het getal 1 krijgt. Daarbij moet het ook nog mogelijk zijn
om de interpretatie, zoals weergegeven is in de tabel, terug te krijgen.

VOOR DE DUIDELIJKHEID: Je hoeft bij deze opdracht dus alleen de klasse uit te werken.
Je hoeft geen bijbehorend script te schrijven dat deze klasse aanroept.

De werkende klasse moet als volgt heten: <Studentnummer>_opdr2.py
Oefentoets bobj (moduleleider: Saïd Basmagi)

Pagina 5 van 6

Opdracht 3 (45 punten)

Bij deze opdracht ga je het spel galgje programmeren. De klasse die bij deze opdracht hoort is
al geprogrammeerd en vind je in mem.py. Het is dus de bedoeling dat je een programma
(script) gaat schrijven dat gebruik maakt van deze klasse.
Een voorbeeld van een mogelijke output van het programma staat op de volgende bladzijde.
Hier volgt een puntsgewijze uitleg:
Als het programma begint moet het volgende naar het scherm geprint worden:
Welkom bij Galgje. Raad het woord dat ik nu in mijn geheugen heb!
Het bestaat uit [getal] letters. Alle letters zijn vervangen door “*”.
Je hebt nog 8 Kansen!
[********]
De gebruiker heeft nu iedere keer 2 mogelijkheden. Deze zullen dan ook naar het
scherm geprint worden:
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige
woord in:
Wanneer de gebruiker 1 letter intypt dan wordt er gecheckt of de letter in het woord
voorkomt. Als dit niet het geval is verliest de gebruiker 1 kans. Op het scherm wordt
dan het volgende uitgeprint:
Je hebt nog [aantal] Kansen!
[********]
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige
woord in:
Typt de gebruiker een correcte letter dan komt de letter op de correcte positie. Op het
scherm wordt dan het volgende uitgeprint:
Je hebt nog [aantal] Kansen!
[****[letter]***]
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige
woord in:
Wanneer de gebruiker meer dan 1 letter intypt dan wordt het volledige woord
gecheckt. Als het woord klopt dan wordt het volgende bericht op het scherm getoond
en stopt het spel:
Gefeliciteerd! Je hebt het woord geraden en je had nog [aantal] kansen.
Klopt het niet dan verliest de gebruiker 3 kansen. Er wordt dan het volgende
uitgeprint:
Je hebt nog [aantal] Kansen!
[****[letter]***]
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige
woord in:
Als de gebruiker geen kansen meer heeft, dan wordt het volgende bericht op scherm
getoond:
Helaas, je hebt het woord niet geraden. Het woord was:
[woord]
Oefentoets bobj (moduleleider: Saïd Basmagi)

Pagina 6 van 6

Verdere eisen:
Het script moet als volgt heten: <Studentnummer>_opdr3.py
Het script moet in functies geschreven worden.
Het script mag code technisch geen herhalingen bevatten.
Het script moet 1 object creëren van de klasse galgje.
De klasse “galgje” moet geïmporteerd worden vanuit de python programma mem.py.
Maak zoveel mogelijk gebruik van de klasse!
Het script hoeft geen rekening te houden met letters die al eerder gevraagd zijn. Als
het letters zijn die niet in het woord voorkomen, dan verliest de gebruiker een kans!
Alle woorden bevatten alleen kleine letters!

Hieronder volgt een voorbeeld van een virtueel spel:

Welkom bij Galgje. Raad het woord dat ik nu in mijn geheugen heb!
Het bestaat uit 6 letters. Alle letters zijn vervangen door “*”.
Je hebt nog 8 Kansen!
******
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
a
Je hebt nog 8 Kansen!
*aa***
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
u
Je hebt nog 7 Kansen!
*aa***
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
r
Je hebt nog 7 Kansen!
*aar**
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
o
Je hebt nog 7 Kansen!
*aaro*
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
waarom
Je hebt nog 4 Kansen!
*aar**
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
d
Je hebt nog 4 Kansen!
daar**
Typ een letter in of als je denkt dat je het woord al weet, typ dan het volledige woord in:
daarom
Gefeliciteerd! Je hebt het woord geraden en je had nog 4 kansen.
*** EINDE TOETS ***