Hoe kan ik alle dagen van de week onthouden? Of beter nog, hoe onthoud ik alle boodschappen die ik moet doen? Leer samen met mij hoe je lijsten kan gebruiken.
Wat is een lijst
Een lijst kan je zien als een kast met heel veel laden, waar in elke lade één enkel voorwerp wordt bewaard. Wanneer je dus een aantal dingen wil onthouden, kan dat allemaal in de kast worden gestoken. En wanneer je het weer terug wil, moet je enkel nog de juiste lade in de kast openen.
Lijsten maken
Naam geven
Om een lijst te maken, gaan we naar het palet Variabelen (zie Figuur 1) en kiezen we een lijstnaam. Door voor elke lijst een verschillende naam te gebruiken, kunnen we lijsten van elkaar onderscheiden.
Zichtbaarheid
We kunnen ook kiezen of een variabele zichtbaar is voor andere sprites of enkel voor de huidige sprite.
(a)
(b)
Figuren 1a en 1b: Aanmaken van een lijst
Lijsten gebruiken
Blok | Uitleg |
---|---|
add "ding" to [woordenlijst]
|
Voeg een element toe aan een lijst. Dit element kan een woord, een zin of zelfs en getal zijn. |
delete "ding" of [woordenlijst]
|
Verwijder een element uit een lijst. Dit element kan een woord, een zin of zelfs een getal zijn. |
insert "ding" at "1" of [woordenlijst]
|
Voeg een element toe op een gekozen plaats in de lijst. In dit voorbeeld wordt "ding" geplaatst op de eerste positie in de lijst. Alle andere elementen in de lijst schuiven dan een nummertje lager. |
replace item "1" of [woordenlijst] with "anderding"
|
Vervang het element op een gekozen positie in een lijst, met een ander element. In dit voorbeeld wordt het eerste element van de woordenlijst vervangen door het element "anderding". |
(item "1" of [woordenlijst])
|
Het resultaat van het blokje is het element op de gekozen positie uit de lijst. In dit voorbeeld is het resultaat het eerste element uit de woordenlijst. |
(item \# of "ding" in [woordenlijst])
|
Het resultaat van het blokje is de plaats van het element in de lijst. In dit voorbeeld is het resultaat de plaats van het element "ding" in de woordenlijst. |
(length of [woordenlijst])
|
Het resultaat van het blokje is de lengte van de lijst. Als de lijst leeg is, is de lengte dus 0. |
<[woordenlijst] contains "ding"?>
|
Het resultaat van het blokje is true (waar) als het element "ding" in de lijst staat. |
Een klein voorbeeldje
define Maak daglijst
verwijder alles van [daglijst]
add "Maandag" to [daglijst]
add "Dinsdag" to [daglijst]
add "Donderdag" to [daglijst]
add "Vrijdag" to [daglijst]
add "Zaterdag" to [daglijst]
add "Zondag" to [daglijst]
when greenflag clicked
Maak daglijst
set [positie] to "1"
repeat {(length of [daglijst])}
say (item (positie) of [daglijst]) for "2" seconds
change [positie] by "1"
end
In dit voorbeeld wordt een lijst van dagen gemaakt en worden alle elementen in de lijst één voor één opgesomd. Er wordt eerst een eigen blokje gemaakt om de lijst te maken en te vullen met een aantal dagen van de week. Daarna moeten we ook een variabele positie gebruiken om de positie van een element in de lijst aan te duiden. We beginnen met het eerste element, dus maken we de variabele gelijk aan 1.
We gebruiken ook een herhaallus om elk element één voor één te zeggen. Het aantal herhalingen dat de lus zal doen is gelijk aan de lengte van de lijst. Om ervoor te zorgen dat het volgende element wordt gezegd moet de variabele positie elke keer verschuiven en wijzen naar het volgende element. Dit doen we door de waarde van die variabele telkens met 1 te verhogen.
En nu aan de slag
- Maak het voorbeeld eens na in Scratch en voer het uit.
- Kan je dit voorbeeld aanpassen?
- Zoals je misschien ook al gezien hebt, ontbreekt er een dag in de lijst. We zijn “Woensdag” vergeten! Kan jij deze nog toevoegen? Doe dit door voor het herhaalblokje gebruik te maken van volgend blokje:
add "Woensdag" to [daglijst]
- Staat “Woensdag” nu ook helemaal achteraan in de lijst? Dat is niet echt wat we willen. Probeer anders eens het volgende blokje:
insert "Woensdag" at "" of [daglijst]
- Voeg een extra sprite toe en zorg ervoor dat de sprites één voor één een element uit de lijst zeggen. Maak hiervoor gebruik van signalen!
- Zoals je misschien ook al gezien hebt, ontbreekt er een dag in de lijst. We zijn “Woensdag” vergeten! Kan jij deze nog toevoegen? Doe dit door voor het herhaalblokje gebruik te maken van volgend blokje:
- Een adresboekje
- Maak drie lijsten: een lijst met namen, een lijst met adressen en een lijst met telefoonnummers.
- Vul de drie lijsten in:
- Vraag een naam en voeg die toe aan de namenlijst.
- Vraag een adres en voeg dit toe aan de adressenlijst.
- Vraag een telefoonnummer en voeg dit toe aan de telefoonnummerlijst.
- Blijf dit HERHALEN TOT de speler “-1” typt. Controleer dus eerst of de speler “-1” heeft getypt voor je het toevoegt aan een lijst!
- Maak het mogelijk dat je kan vragen naar alle gegevens die je hebt van een persoon:
- Vraag naar de naam van de persoon.
- Zoek de naam in de namenlijst.
- ALS de naam in de namenlijst zit, dan:
- Onthoud (gebruik variabele) de positie van de naam in de lijst.
- Gebruik de positie om het adres en telefoonnummer uit de andere lijsten te halen.
- ANDERS zeg je dat je geen gegevens hebt van die persoon.
- Je kan dit zoveel keren herhalen als je zelf wilt.