Je hebt een voorbeeld staan op dat blad.
Ik loop er even met je door:
Code: Selecteer alles
Je begint aan de bovenkant bij BEGIN.
Je zet een teller op 0.
Onderstel dat aantal = 2.
Je komt aan de diamant: teller(0) < aantal(2) ?
JA, dus we volgen de pijl naar beneden.
De teller wordt met 1 verhoogd om aan te geven dat we al 1 keer op deze plaats gepasseerd zijn.
Nu krijgen we via VraagEnLees een waarde binnen van de gebruiker.
In het stuk VERWERK krijg je dan de kans om met die waarde iets te doen, dat komt later.
We komen terug aan de diamant, de teller staat nu op 1.
teller(1) < aantal(2) ?
JA, dus we volgen weer de pijl naar beneden. We verhogen de teller weer met 1 om aan te geven dat we 2 keer gepasseerd zijn. We krijgen een nieuwe waarde binnen van de gebruiker en we VERWERKEN die weer.
We komen terug op de diamant, de teller staat nu op 2.
teller(2) < aantal(2) ?
NEE, dus we volgen de andere pijl en die komt op EINDE dus het programma is afgelopen.
Dit heb je al allemaal cadeau gekregen, en hierin staat al alles wat je kan doen. Probeer dit eerst helemaal te begrijpen.
Nu gaan we dit diagram een beetje uitbreiden om oefening 6 op te lossen:
Ik heb je al verteld dat we een 2de teller zullen nodig hebben. Ik noem deze 'resultaat'. Op de plaats waar je 'teller' op 0 zet, zal je nu ook 'resultaat' op 0 moeten zetten.
Het programma dat er nu staat neemt een aantal waarden binnen van de gebruiker, maar doet er niks mee.
Onder VERWERK gaan we dus nu iets schrijven dat kan tellen hoeveel waarden er positief zijn. Je zal dus een diamant maken waar in staat 'waarde > 0'. Uit die diamant lopen dan 2 pijlen JA en NEE.
Kan je nu zelf die JA en NEE weg maken?
Ik begrijp dat het misschien verwarrend is van diamantstructuren binnen een andere diamantstructuur te maken, maar dit mag en gebeurt heel vaak. Probeer het dus heel duidelijk te tekenen.
Ik weet dat dit sowieso niet gaat kloppen maar ik kan u wel laten zien dat ik hier echt moeite voor doe..
Die blok met X die je maakt is eigenlijk dus die VraagEnLees(waarde).
Dan moet je inderdaad controleren of waarde > 0.
Bij JA, zal je ergens een 2de teller moeten verhogen zoals dat bij 'teller' gebeurt.
Bij NEE spring je nu meteen naar het einde. Als je als eerste waarde een negatief getal binnenkrijgt zal je programma meteen stoppen terwijl het eigenlijk nog (aantal-1) andere waarden moet vragen.
NEE moet dus ook boven die eerste diamant uitkomen.