Cursussen/Courses Codesnippets     Top 
Small Basic - Lussen


1. Lussen

Als je een verzameling programmaregels meermaals wil uitvoeren kan je gebruik maken van een lus-structuur. Als je op voorhand weet hoeveel keer een verzameling programmaregels moet uitgevoerd worden kan je de "For" lus gebruiken. Als de uitvoering van de verzameling programmaregels afhankelijk is van een bepaalde voorwaarde kan je een "While" lus gebruiken. Met de "Goto" sprongopdracht worden de eerstvolgende instructies na een "label" uitgevoerd.



2. For... EndFor

Je gebruikt een "For" lus als volgt:

Na het woord "For" typ je een variabele naam (in dit geval "i"). In deze variabele wordt bijgehouden hoeveel keer de lus reeds is uitgevoerd. De inhoud van de variabele "i" wordt automatisch verhoogt aan het einde van de lus. De eerste keer is "i" dus 1, de tweede keer 2, enz.

Bij het woord "EndFor" wordt door Small Basic nagegaan of de lus nogmaals moet uitgevoerd worden. Hiervoor wordt gekeken naar de waarde die na het woord "To" in de "For" regel staat. Als de waarde van "i" groter is dan de waarde na "To" gaat het verdere verloop van het programma door na de programmaregel met "EndFor". In dit geval stopt dan het programma.

Er kunnen meerdere programmaregels staan tussen de "For" regel en de "EndFor" regel.

Je kan de "For" regel nog uitbreiden met het woord "Step". Hierachter geef je aan met hoeveel de inhoud van variabele "i" moet verhoogt worden na het uitvoeren van de programmaregels tussen de "For" en "EndFor" regels.

Hier wordt de inhoud van "i" met 2 verhoogt na het uitvoeren van de instructies.

Je kunt de waarden in de "For" regel ook zo instellen dat de inhoud van "i" van groot naar klein gaat.

De "For" lus wordt veel gebruikt bij het aflopen van items in een lijst waarbij het programma de lengte van de lijst kan bepalen (bvb. om de inhoud van een array te tonen).



3. While... EndWhile

Bij de "While" lus geef je na het woord "While" tussen haakjes een voorwaarde op. De programmaregels tussen de "While" regel en de "EndWhile" regel worden uitgevoerd zolang de voorwaarde "waar" is.

In dit programma wordt berekend hoeveel vakjes nodig zijn om minder dan honderd steentjes in een vakje te plaatsen. In elk vakje wordt steeds het dubbel aantal steentjes geplaatst van het vorige vakje.

De voorwaarde na het woord "While" bepaalt het aantal keren dat de lus wordt uitgevoerd. In het voorbeeld wordt de inhoud van de variabele "totaal" verhoogt met het aantal steentjes van elk vakje. Zo heb je dus 7 vakjes nodig om aan 64 steentjes te komen. In het 8ste vakje zouden 128 steentjes komen waarbij het totaal niet meer kleiner is dan 100. Kan je het aantal steentjes bepalen als je een schaakbord vol zou leggen (64 vakjes)?



4. Goto... label

Met de instructie "Goto" geef je in het programma aan dat er naar een welbepaalde plaats in het programma moet "gesprongen" worden. Het programma gaat verder met de regel met een "label" in. Je kan de naam van een label zelf bepalen. Achter de labelnaam moet je een dubbelpunt plaatsen (":"-teken).

Zo kan je ook een lus-structuur maken.

Het label "start:" geeft het begin van de lus aan. Als de voorwaarde (getal > 1) "waar" is wordt met de "Goto" instructie teruggegaan naar "start:".

Je kan met "Goto" ook een oneindige lus maken. Het programma blijft dan draaien totdat je op de rode X-knop van het venster klikt of in het Small Basic venster op de knop "Einde van het programma" klikt.

In het onderstaande voorbeeld is het "even_oneven" programma aangepast.

Op de eerste regel staat een label "begin:" en op de laatste regel staat de "Goto" instructie om terug naar de eerste regel te gaan. Je kan in een lus andere lussen gebruiken. Men noemt dit dan "geneste" lussen.



5. Oefeningen

1. Schrijf een programma om de tafels van vermenigvuldiging te tonen. De gebruiker geeft het basisgetal op en het aantal te berekenen tafels. In het tekstvenster worden de verschillende berekeningen getoond (bvb. 1 x 12 = 12, 2 x 12 = 24, enz…). (programma naam: tafels_vermenigvuldiging)

2. Schrijf een programma dat 10 willekeurige getallen tussen 1 en 100 in een tekstvenster toont. Je kan hier gebruik maken van de bewerking "GetRandomNumber" van het "Math" object (getal = Math.GetRandomNumber(100)). (programma naam: random)

3. Schrijf een programma waarbij je een woord ingeeft. Het programma zorgt ervoor dat de eerste letter wordt omgezet in een hoofdletter, de volgende letter niet, de derde letter wel enz. Wanneer je het woord informatica ingeeft, wordt dit dus InFoRmAtIcA. Toon in een tekstvenster het omgezette woord. (programma naam: hoofdletter_kleineletter)

4. Schrijf een programma dat de eerste 20 Fibonaci-getallen in een tekstvenster toont. De rij van Fibonaci bestaat uit gehele getallen waarbij het getal de som is van de vorige twee getallen (behalve bij de eerste 2 getallen). Voorbeeld: 1 1 2 3 5 8 13 (programma naam: fibonaci)