In deze oefeninge bouwen we verder op de oefening Eindcijferberekening (2) uit reeks 2.
We berekenden het eindcijfer voor het vak programmeren op basis van drie deelscores: de punten voor het oefeningenexamen (cijfer op 18), de punten voor het mondelinge examen theorie (cijfer op 10) en de bonuspunten (0, 1 of 2).
Ter herinnering
De bereking ging als volgt:
- Het oefeningenexamen staat op 75% van de punten.
- Het mondelinge examen theorie staat op 25% van de punten.
- Als een student afwezig was voor beide examens, dan is het eindcijfer 'afwe', ongeacht de bonuspunten.
- Als een student afwezig was voor één van beide examens, maar deelgenomen heeft aan het andere examen, dan krijgt de student een nulscore voor het afwezige examen.
- 0, 1 of 2 bonuspunten worden toegevoegd aan het eindcijfer met als randvoorwaarde dat je via bonuspunten niet boven de 18/20 kan uitkomen.
- Het eindcijfer is een geheel getal op 20 (afronding: zie verder).
Afronding:
- Als het eindcijfer (decimaal) berekend is volgens de methode hierboven, wordt dit afgerond volgens de standaard Python afrondingsprocedure. Meer info hierover vind je in de waarschuwing bij de oefening in reeks 2. De afronding mag pas toegepast worden op het eindcijfer, niet bij tussenresultaten.
Opgave
Schrijf een functie eindcijfer die drie argumenten heeft:
- Cijfer voor het oefeningenexamen: een geheel getal tussen 0 en 18, of "afwe"
- Cijfer voor het mondelinge examen theorie: een geheel getal tussen 0 en 10, of "afwe"
- Bonuspunten: een geheel getal tussen 0 en 2
De functie retourneert het eindcijfer (geheel getal tussen 0 en 20) of de string "afwe".
Voorbeelden
>>> eindcijfer(16, 7, 2)
18
>>> eindcijfer('afwe', 2, 2)
3
>>> eindcijfer('afwe', 'afwe', 2)
'afwe'
Waarschuwing: print versus return
Deze oefening heeft als enig doel dat je goed het verschil begrijpt tussen een print en een return statement. Je kan de berekening overnemen uit de vorige oefening en aanpassen.
Als in de opgave gevraagd wordt om een functie te programmeren, dan hoef je niets op het scherm af te drukken. Gevolg is dat er in PyCharm niets zal gebeuren als je het programma uitvoert. De functie hoeft immers niet aangeroepen te worden.
Hoe testen in PyCharm?
- Programmeer de definitie van de functie in een .py bestand.
- Klik rechtermuisknop en kies "Run file in Python Console"
Schermafruk 1
- De definitie van de functie is nu geladen in de console en je kan de functie gebruiken.
- Kopieer de voorbeeldjes (aanroep van de functie) in de console en kijk of je de juiste waarde krijgt.
Schermafruk 2