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