Variabelen: dozen met een naam
Een variabele is een doos met een naam waarin een programma een waarde bewaart, zoals je score in een spel. Die waarde kan veranderen.
Waarom
Hoe weet een spel hoeveel punten je hebt, ook na honderd sprongen en tien munten?
Het spel moet je score ergens onthouden. Telkens als je een munt pakt, kijkt het naar de oude score, telt er iets bij en onthoudt de nieuwe.
Die plek om iets te onthouden heet een variabele. Je kunt ze zien als een doos met een etiket: op het etiket staat de naam, in de doos zit de waarde.
Zie het
Kies een programma en voer het regel per regel uit. Kijk welke doos verandert en wat erin komt.
- nog leegscore
- nog leegilusteller
- zet score op 0
- herhaal 3 keer
- zet score op score + 5
- toon score
score = 0for i in range(3):score = score + 5print(score)
Beschrijving van het beeld
Naast een kort programma staan dozen met een naam, zoals score, a, b, temp, x en de teller i. Bij elke stap licht de regel op die loopt, en de doos die verandert krijgt een markering en haar nieuwe waarde. Onderaan staat wat het programma toont.
Snap het
Met score = 0 maak je een doos met de naam score en leg je er 0 in. Het teken = betekent hier niet is gelijk aan, maar: leg in de doos.
Met score = score + 5 kijkt de computer eerst rechts: wat zit er nu in score? Daar telt hij 5 bij. Het resultaat legt hij terug in dezelfde doos. De oude waarde is dan weg.
In een doos zit altijd maar één waarde. Wil je twee dozen van inhoud wisselen, dan heb je een hulpdoos nodig, anders ben je één waarde kwijt.
Een lus heeft zelf ook een variabele: de teller. In for i in range(4): krijgt i na elkaar de waarden 0, 1, 2 en 3. Je kunt i gebruiken in je berekening.
Een goede naam helpt: score of coins zegt meer dan x. De computer maakt het niet uit, maar de mensen die je code lezen wel.
naam = waarde: reken rechts uit met de waarden van nu, leg het resultaat in de doos links. De oude inhoud verdwijnt.
Uitgewerkt voorbeeld
Welk getal toont dit programma?
Het programma:
score = 2 for i in range(3): score = score + 4 print(score)Regel 1: score wordt 2.
De lus loopt 3 keer en telt telkens 4 bij: 6, dan 10, dan 14.
Regel 4 toont de inhoud van score.
- Antwoord
Het programma toont 14.
Doe het
Kies een niveau. Je krijgt telkens een nieuwe opgave, die meteen nagekeken wordt.
Valkuilen
Fout:
score = score + 5kan niet, want een getal is nooit 5 meer dan zichzelf.In code betekent
=niet is gelijk aan, maar: leg in de doos. Eerst wordt rechts uitgerekend, dan wordt de doos gevuld.Juist: Lees
=als wordt: score wordt score plus 5.Fout: Na
a = benb = azijn a en b gewisseld.Na
a = bzit de oude waarde van a nergens meer. Daarna krijgt b gewoon zijn eigen waarde terug.Juist: Bewaar eerst een kopie:
temp = a, dana = b, danb = temp.Fout: Een variabele onthoudt al haar vroegere waarden.
In een doos past één waarde. Wie iets nieuws in de doos legt, gooit het oude weg.
Juist: Wil je vroegere waarden bijhouden, dan heb je meer dozen nodig (of later: een lijst).
In het echt
- Je gsm bewaart het percentage van je batterij in een variabele die steeds kleiner wordt.
- Een stappenteller telt er bij elke stap 1 bij: stappen wordt stappen plus 1.
- Een kassa in de supermarkt houdt het totaal bij en telt bij elk product de prijs erbij.
- In een spel zitten je levens, je munten en je niveau elk in een eigen variabele.
Geschiedenis
De code in Lus lijkt op Python, een programmeertaal die de Nederlander Guido van Rossum bedacht. De eerste versie verscheen in 1991. Python wordt nu op veel scholen en in veel bedrijven gebruikt.
Aan tafel
Bedenk samen een spel met drie variabelen, bijvoorbeeld punten, levens en tijd. Wanneer gaat elke variabele omhoog of omlaag?
Een vraag om samen over te praten, voor ouders en kinderen. Er is geen fout antwoord.