Loading
Loading
Programmeren is het hart van de informatica: je vertaalt een plan (een algoritme) in code die de computer stap voor stap uitvoert. In dit domein leer je van de grond af werken met variabelen en datatypes, met de drie controlestructuren sequentie, selectie en iteratie, met functies en objecten, en met de belangrijkste programmeerparadigma's. Het domein sluit af met testen en debuggen: systematisch controleren of je programma klopt en fouten gericht opsporen.
5Onderdelenca. 27min leestijd4VaardighedenNiveauBasis 2 · Standaard 2 · Verdieping 1
basisniveau
Zorg dat je variabelen, de drie controlestructuren en een eenvoudige functie foutloos kunt lezen en naspelen (tracen).
verhoogd niveau
Oefen met geneste structuren, objectoriëntatie en het opstellen van volledige testsets met randgevallen en foutieve invoer.
Lesetiefe: Verdieping
Schriftgröße: Standard
Veelgebruikte datatypes
Bepaal stap voor stap de waarde en het datatype van: 2 + 3 × 4 > 10 en niet (10 / 2 == 4).
Binnen de haakjes staat 10 / 2 == 4. Delen gaat vóór vergelijken: 10 / 2 = 5.0 (een float). Daarna 5.0 == 4, en dat is onwaar.
Buiten de haakjes eerst het product: 3 × 4 = 12. De expressie wordt nu 2 + 12 > 10 en niet (onwaar).
2 + 12 = 14. Er staat nu 14 > 10 en niet (onwaar).
14 > 10 is waar. De expressie wordt: waar en niet (onwaar).
Eerst niet: niet onwaar = waar. Dan en: waar en waar = waar.
De uitkomst is waar. Omdat de buitenste bewerking een logische operator is, is het datatype een boolean.
Resultaat: De expressie evalueert tot waar; het datatype van het resultaat is boolean.
Veelgemaakte fouten
Actieve herhaling
Gegeven a = 5 en b = 2. Bepaal de waarde én het datatype van de expressie a / b > 2 en niet (a mod b == 0). Schrijf elke tussenstap op.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica (HAVO) (CvTE / Examenblad)
Herhaling met een for-lus
Bepaal wat dit programma uitprint: som = 0 aantal = 0 voor i van 1 tot en met 6: als i > 3 dan: som = som + i aantal = aantal + 1 toon som, aantal
Vóór de lus geldt som = 0 en aantal = 0. De lus laat i lopen van 1 tot en met 6.
Voor i = 1, 2 en 3 is de voorwaarde i > 3 onwaar. Het als-blok wordt overgeslagen; som blijft 0 en aantal blijft 0.
Nu is 4 > 3 waar: som = 0 + 4 = 4 en aantal = 0 + 1 = 1.
5 > 3 is waar: som = 4 + 5 = 9 en aantal = 1 + 1 = 2.
6 > 3 is waar: som = 9 + 6 = 15 en aantal = 2 + 1 = 3. Daarna is de lus klaar.
Na de lus print het programma 15 en 3: de som en het aantal van de getallen groter dan 3 (namelijk 4 + 5 + 6).
Resultaat: Het programma print: 15 en 3.
Veelgemaakte fouten
Actieve herhaling
Schrijf in pseudocode een programma dat de getallen 1 tot en met 20 doorloopt en alleen de veelvouden van 3 optelt. Bepaal daarna met de hand welk totaal het programma uitprint.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica (HAVO) (CvTE / Examenblad)
Een functie aanroepen en terugkeren
Gegeven de functie: functie bmi(gewicht, lengte): resultaat = gewicht / (lengte × lengte) geef resultaat terug Wat geeft de aanroep bmi(64, 1.6) terug, en welke variabelen zijn lokaal?
Bij de aanroep bmi(64, 1.6) krijgt de parameter gewicht de waarde 64 en de parameter lengte de waarde 1.6.
Eerst het deel tussen haakjes: lengte × lengte = 1.6 × 1.6 = 2.56.
Dan resultaat = 64 / 2.56 = 25.0 (delen levert een float op).
De regel 'geef resultaat terug' stopt de functie en levert 25.0 af aan de aanroep.
De variabelen gewicht, lengte en resultaat zijn lokaal: ze bestaan alleen binnen bmi en zijn na de aanroep weer verdwenen.
Resultaat: bmi(64, 1.6) geeft 25.0 terug; gewicht, lengte en resultaat zijn lokale variabelen.
Veelgemaakte fouten
Actieve herhaling
Gegeven de functie: functie korting(prijs, procent): geef prijs - prijs × procent / 100 terug. Bepaal de returnwaarde van korting(80, 25) en leg uit welke variabelen lokaal zijn.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica (HAVO) (CvTE / Examenblad)
Klassenhiërarchie met overerving
Vier programmeerparadigma's
Modelleer een klasse Leerling met de attributen naam en cijfers en een methode gemiddelde(). Beschrijf daarna één concrete instantie.
klasse Leerling: attributen: naam, cijfers methode gemiddelde(): geef som(cijfers) / aantal(cijfers) terug
Maak een object met leerling1 = Leerling("Sanne", [7, 8, 6]). Dit object heeft nu naam „Sanne” en cijfers [7, 8, 6].
Roep leerling1.gemiddelde() aan: de som van de cijfers is 7 + 8 + 6 = 21, gedeeld door 3 cijfers geeft 7.0.
Een tweede object leerling2 = Leerling("Ravi", [4, 6]) gebruikt dezelfde methode maar heeft eigen attribuutwaarden; gemiddelde() geeft daar (4 + 6) / 2 = 5.0.
leerling1 is een instantie van de klasse Leerling. Beide objecten delen de methode gemiddelde(), maar elk object bewaart zijn eigen data — dat is precies de kern van objectoriëntatie.
Resultaat: leerling1.gemiddelde() geeft 7.0 en leerling2.gemiddelde() geeft 5.0: dezelfde klasse en methode, maar eigen attribuutwaarden per object.
Veelgemaakte fouten
Actieve herhaling
Ontwerp een klasse Boek met minstens twee attributen en één methode. Beschrijf daarna één concrete instantie van je klasse, en geef aan welk paradigma je hierbij gebruikt.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica (HAVO) (CvTE / Examenblad)
Testgevallen voor geslaagd(cijfer)
De debugcyclus
De functie geslaagd(cijfer) geeft waar als cijfer >= 5,5 en anders onwaar (cijfers lopen van 1 tot en met 10). Stel een zinvolle testset op.
Neem eerst twee gewone cijfers, ruim aan weerszijden van de grens: 4,0 (ruim onvoldoende) hoort onwaar te geven, 8,0 (ruim voldoende) hoort waar te geven.
De grens ligt bij 5,5. Test daarom net eronder, precies erop en net erboven: 5,4 geeft onwaar, 5,5 geeft waar (want >= is inclusief) en 5,6 geeft waar. Juist hier ontmasker je een verkeerd gekozen > in plaats van >=.
Test ook invoer die niet mag: -2 en 11 vallen buiten het bereik 1 tot en met 10. Verwacht gedrag is dat het programma de invoer weigert of een nette melding geeft, in plaats van zomaar een uitkomst te verzinnen.
Zet elk geval in een tabel met de kolommen invoer, verwacht en werkelijk. Draai de functie en vul de werkelijke uitkomst in; elk verschil tussen verwacht en werkelijk wijst op een fout.
Resultaat: Een testset van bijvoorbeeld 4,0 → onwaar, 8,0 → waar, 5,4 → onwaar, 5,5 → waar, 5,6 → waar en -2 → foutmelding dekt normale, rand- en foutieve invoer af.
Veelgemaakte fouten
Actieve herhaling
Gegeven de functie geslaagd(cijfer) die waar teruggeeft als cijfer >= 5,5 en anders onwaar. Stel een tabel met minstens vijf zinvolle testgevallen op (normaal, rand én foutief) met daarbij telkens het verwachte resultaat.
Actief ophalen
Haal de kernpunten op — onthul ze daarna.
Bronnen: Examenprogramma informatica (HAVO) (CvTE / Examenblad)
Referenties en bronnen
CvTE / Examenblad