Arrays - Cursustekst

advertisement
Small Basic – arrays | 1/3
Arrays
Bij het schrijven van programma's gebruik je vele variabelen. De inhoud van die
variabelen kunnen tot eenzelfde soort gegeven behoren (bvb. een lijst van namen,
een getallenreeks, een lijst van leeftijden, een lijst van woorden, de kaarten in een
kaartspel, enz…). Om die gegevens vlot te kunnen opslaan kan je een array
gebruiken.
Net zoals bij een variabele geef je een array een gepaste naam (bvb. namen,
getallen, leeftijden, woorden, kaarten, enz…). Voor elk gegeven in een array wordt
het nodige geheugen in de computer vrijgemaakt. Je kan naar elk element (of item)
van een array verwijzen met een index (of subscript). De index wordt tussen
vierkante haken achter de naam van de array geplaatst.
Een voorbeeld:
Met behulp van een
"For" lus kan je een
naam vragen en opslaan
in de array "naam" onder
de index "i". In dit geval
zijn er 3 namen
ingegeven die je kunt terug ophalen door
de naam van de array en tussen
vierkante haken de index op te geven.
Het aantal elementen in de array kan je
opvragen met de bewerking
"GetItemCount" van het object "Array".
Je kunt als index ook een woord gebruiken. In het volgende voorbeeld worden
gegevens van een lid van een club gevraagd en in een array "lid" opgeslagen.
Je kunt een gegeven
van een lid opvragen
door het index-woord op
te geven.
© Cursustekst.be - 2012
2/3 | Small Basic – arrays
Dimensies
In de vorige voorbeelden hadden de arrays maar 1 index. Je kunt ook een array
maken met 2 indexen. Zo kan je bijvoorbeeld gegevens van een tabel opslaan in een
array met 2 indexen.
In het volgende voorbeeld worden de punten (op 10) van leerlingen voor enkele
vakken ingegeven en getoond.
In Excel zou deze tabel er zo uit zien:
punten
punten
Leerlingnaam Nederlands Informatica
Paul
7
8
Jef
6
7
Bij het gebruik van deze array moet
de gebruiker aandachtig zijn om niet
tweemaal dezelfde leerling naam in te geven als de punten worden ingegeven. Doet
hij/zij dat toch dan worden de gegevens van de laatst ingegeven leerling met
dezelfde naam in de array opgeslagen. De index van een array moet uniek zijn voor
elke dimensie (in dit geval voor de leerling naam en voor het vak).
Een lijst van alle leerlingenindexen kan je aanmaken met de bewerking
"GetAllIndices" van het "Array" object.
© Cursustekst.be - 2012
Small Basic – arrays | 3/3
Oefeningen
1. Schrijf een programma dat per datum een temperatuurmeting bijhoudt in een
array. Voorzie in het programma een subroutine die je meermaals kan oproepen
om een datum en een temperatuur in te geven en te bewaren in de array. De
datum is de index van de array. De temperatuur is een getal met 1 cijfer na de
decimale punt zoals bvb. 19.3, 21.6. Schrijf daarna ook een subroutine om de
hoogste en laagste temperatuur op te halen uit de array en te tonen in een
tekstvenster. (programma naam: temperatuur)
2. Schrijf een programma waarbij 10 zinnen kunnen ingegeven worden. Deze zinnen
worden opgeslagen in een array "zin". Schrijf een subroutine om alle zinnen in
een tekstvenster te tonen. Schrijf dan een subroutine waarbij de gebruiker een
woord kan ingeven. Daarna wordt nagegaan of het woord in de array aanwezig is.
Er wordt een gepaste melding in een tekstvenster getoond (bvb. "Het woord werd
gevonden" of "Het woord werd niet gevonden"). Toon ook de zin waar het woord
in voorkomt als het woord werd gevonden. (programma naam: woord_zoeken)
3. Schrijf een programma dat een array invult met speelkaarten. De array bevat 2
dimensies: kaartsoort ("schoppen", "klaveren", "harten", "ruiten") en kaartwaarde
(1 t.e.m. 13 waarbij 1 = aas, 11 = boer, 12 = dame, 13 = heer). De inhoud van
een element is de kaartsoort en de kaartwaarde of de naam bvb.
kaarten["harten"][12] = "harten dame", kaarten["ruiten"][4] = "ruiten 4". Schrijf
daarna een subroutine om willekeurig 2 verschillende kaarten uit het kaartspel (de
kaarten array dus) te selecteren en hun inhoud in een tekstvenster te tonen.
(tip: je kan "Math.GetRandomNumber()" gebruiken om respectievelijk een soort
en een waarde voor de indexen te selecteren) (programma naam: kaartspel)
4. Schrijf een programma dat een array invult met Nederlandse en Engelse woorden
waarbij de index het te vertalen woord is en de inhoud van het element de
vertaling van het woord bvb. woorden["tafel"] = "table", woorden["table"] = "tafel".
Schrijf dan een subroutine om van een ingegeven woord de vertaling op te
zoeken in de array en te tonen in een tekstvenster.
(programma naam: vertalingen)
5. Schrijf een programma waarbij de gebruiker een reeks getallen invoert. De
getallen worden in een array opgeslagen. Schrijf dan een subroutine die de
getallen van de array sorteert van klein naar groot en het resultaat toont in een
tekstvenster. Op het internet kan je verschillende sorteermethodes (of algoritmes)
vinden. Een eenvoudig algoritme is datgene waarbij het eerste element wordt
vergeleken met alle andere elementen. Als een element een kleinere waarde
bevat wordt de inhoud van het eerste element omgewisseld met het geteste
element. Op die manier komt in het eerste element het kleinste getal te staan.
Daarna test je het tweede element met alle overgebleven elementen enz…
(programma naam: getallen_sorteren)
© Cursustekst.be - 2012
Download