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;
de herhalingen stoppen met behulp van een voorwaarde

Het aantal herhalingen moet niet op voorhand gekend zijn;
de herhalingen stoppen met behulp van een voorwaarde

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.
De actie wordt niet uitgevoerd als bij toeval reeds vanaf het begin niet voldaan is aan de aanvangsvoorwaarde

Eerst wordt de actie uitgevoerd; dan pas komt de controle van de voorwaarde.
De actie wordt altijd minstens éénmaal uitgevoerd

 

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.

  1. Bij de geboorte van hun baby spreken ouders af dat ze het kind elke week 1 fr. zakgeld geven. Dit bedrag wordt bij elke verjaardag van het kind verdubbeld.
    Bepaal hoeveel dit kind wekelijks krijgt op zijn 18de verjaardag.
  2. Hoelang duurt het vooraleer een kapitaal, uitgezet tegen een in te voeren percent, in het geval van samengestelde intrest, meer dan verdubbeld is.
    Tip: de waarde van het kapitaal is onbelangrijk. Het duurt immers even lang om 1 fr. te laten aangroeien tot meer dan 2 fr., als om 1 miljoen fr. te laten aangroeien tot meer dan 2 miljoen fr.