De controlestructuur iteratie
1ste methode: de herhaling met aanvangsvoorwaarde
Een iteratie is een elementair programmadeel opgebouwd uit een herhalingsvoorwaarde en een sequentie eventueel bestaande uit andere controlestructuren. Zolang aan de herhalingsvoorwaarde voldaan is, wordt de aangegeven sequentie herhaald.
Structogram:

Pseudo-code:
DOE ZOLANG (voorwaarde)
… (bewerkingen)
EINDE DOE ZOLANG
Voorbeeld:
Een firma geeft haar arbeiders elk jaar een loonsverhoging van 2%. Lees het aantal jaren dienst en het huidig loon van een arbeider in. Bereken het beginloon.

Uitwerking in Access
Do While voorwaarde
….
Loop
Voorbeeld1: Doe zolang structuur met functieprocedure
Open een nieuw formulier zonder tabel.
Voeg een label toe, als titel van het document.
Voeg 3 tekstvakken in het formulier en geef deze in eigenschappen de namen:
txtHuidigLoon
txtAantalJarenDienst
txtBeginLoon
Tevens krijgen deze tekstvakken de standaardwaarde: ""
Typ in het tekstvak "txtBeginLoon" bij de eigenschap besturingselementbron de volgende aanroepfunctie: =Bereken([txtHuidigLoon];[txtAantalJarenDienst])
[txtHuidigLoon] en [txtAantalJarenDienst] verwijzen naar de tekstvakken de gegevens zullen bevatten.
Let op de haken die een tekstvak afbakenen !!
De tekstvakken worden gescheiden door een kommapunt en door een komma !!
Open daarna een module.
Open daarin een procedure:

Geef de functie als naam: "Bereken"
Verander het bereik in "Persoonlijk" d.w.z. private variabelen.
Type daarna onderstaande functie in:

Let op de indentatie binnen de lus, het bevordert de leesbaarheid.
De variabelen strHuidigLoon en strAantaljDienst zijn resp. gekoppeld aan de tekstvakken txtHuidigLoon en txtAantalDienstJaren.
De functie geeft de berekende inhoud terug aan het aanroepbevel in het tekstvak txtBeginLoon.
Test dit programma uit !!
Voorbeeld2: Doe zolang structuur met gebeurtenisprocedures
Dezelfde opdracht van hierboven maar ditmaal met opdrachtknoppen.
Opdrachtknoppen worden geactiveerd door de gebeurtenisprocedure click().
Maak terug een nieuw formulier zonder tabel.
Plaats terug dezelfde 3 tekstvakken in het formulier met identieke namen; je kan deze eventueel kopiëren.
Voeg er eveneens 3 opdrachtknoppen aan toe, deze knoppen krijgen de naam:
cmdBereken
cmdWissen
cmdSluiten
Je moet het onderstaande scherm bekomen:

In de opdrachtknop "Bereken" wijs je in de eigenschap 'bij klikken' onderstaande gebeurtenisprocedure toe:

In de opdrachtknop "Wissen" wijs je in de eigenschap 'bij klikken' onderstaande gebeurtenisprocedure toe:

In de opdrachtknop "Sluiten" wijs je in de eigenschap 'bij klikken' onderstaande gebeurtenisprocedure toe:
Private Sub cmdSluiten_Click()
DoCmd.Close
End Sub
Test dit programma uit !
2de methode: de herhaling met afbreekvoorwaarde
Dit is een iteratie met een voorwaarde die achteraf gesteld wordt, dus ná de uitvoering van het ingesloten programmadeel. Zolang aan de voorwaarde niet voldaan is, wordt het aangegeven programmadeel herhaald.
Structogram

Pseudo-code
Herhaal
…
Tot (voorwaarde)
Uitwerking in Access
Do
…
Loop Until voorwaarde
Passen we bovenstaand voorbeeld aan met deze structuur, dan krijgen we d.m.v. het
Do Loop Until statement het volgende:

Test dit uit !
3de methode: de begrensde herhaling
De vooraf begrensde herhaling is een bijzondere vorm van de gewone iteratie waarbij de herhalingsvoorwaarde vooraf vastgelegd is.
De iteratievoorwaarde bevat de beginwaarde en de eindwaarde, waarbij de beginwaarde verhoogd of verlaagd wordt naargelang de waarde van de stap.
Structogram:

De lusvariabele is hier een ingebouwde teller.
Pseudo-code:
Voor (lusvariabele)=(beginwaarde) tot (eindwaarde) [stap] stapgrootte
… (bewerkingen)
Volgende (lusvariabele)
Algemene bespreking van dit statement:
Uitwerking in Access
For variabele=beginwaarde to eindwaarde [step stapgrootte]
…
Next variabele
Voorbeeld met berekening loonsverhoging:
.
Test dit programma uit !
Vergelijking van de 3 herhalingen.
|
Zolang |
Totdat |
Begrensde |
|
Het aantal herhalingen moet niet op voorhand gekend zijn; |
Het aantal herhalingen moet niet op voorhand gekend zijn; |
Een welbepaald aantal herhalingen, dat op voorhand moet gekend zijn. |
|
Er kunnen oneindige lussen optreden |
Er kunnen oneindige lussen optreden |
Oneindige lussen zijn onmogelijk |
|
De voorwaarde wordt altijd vóór de actie onderzocht. |
Eerst wordt de actie uitgevoerd; dan pas komt de controle van de voorwaarde. |
|
Oefeningen:
Deze oefeningen worden voorlopig uitgewerkt zonder tabellen.
Pas de verschillende iteratiestructuren toe in iedere opgave.
Maak gebruik van een functieprocedure en daarna van een gebeurtenisprocedure met opdrachtknoppen.