• No results found

de voorwaardelijke herhaling

In document Algoritmen met Excel (pagina 56-62)

-- Tweezijdige selectie

Hoofdstuk 5: de voorwaardelijke herhaling

Moet een bepaalde sequentie een aantal keer herhaald worden, dan doen we dat met een begrensde herhaling. Maar wat als we niet op voorhand weten hoe dikwijls er moet herhaald worden?

In dat geval zullen we werken met een voorwaardelijke herhaling. We zeggen niet dat de sequentie

n keer herhaald moet worden, maar we zeggen dat de sequentie zolang herhaald moet worden totdat

aan een of andere voorwaarde voldaan wordt.

Die voorwaarde kan aan het begin van de herhaling gecontroleerd worden. In dit geval spreken we van een voorwaardelijke herhaling met aanvangsvoorwaarde. We kunnen de voorwaarde ook op het einde van de herhaling plaatsen. We spreken dan van een voorwaardlijke herhaling met afbreekvoorwaarde. In dit laatste geval wordt de sequentie dus zeker minstens één keer uitgevoerd, ook al is van in het begin niet aan de voorwaarde voldaan.

Let goed op bij het opstellen van de voorwaarde. Als je algoritme de voorwaarde niet beï nvloedt dan zal er nooit aan de voorwaarde voldaan zijn en krijgen we een oneindige lus . In sommige gevallen zit er niets anders op dan Excel af te sluiten of zelfs je computer opnieuw op te starten.

Zorg er nu dus zeker voor dat je je werk bewaart elke keer vóór je je programma test!

Zo gaat niet al je werk verloren als je programma in een oneindige lus verzeild geraakt. 5.1 De voorwaardelijke herhaling met aanvangsvoorwaarde

De voorwaarde kan op twee plaatsen voorkomen: ofwel vóór de te herhalen sequentie, ofwel erna. Komt de controle vóór de te herhalen sequentie, dan spreken we van een voorwaardelijke herhaling met aanvangsvoorwaarde.

NS-diagram:

Zolang voorwaarde

OPDRACHTEN

Syntax: While voorwaarde

opdracht(en)

Wend

Zolang aan de voorwaarde voldaan is zal de opdrachtenreeks uitgevoerd worden.

Hoe dikwijls wordt de sequentie dus minstens uitgevoerd? ... minstens 0 keer. Als niet aan de voorwaarde voldaan is bij de aanvang van de herhaling... zal de sequentie geen enkele keer uitgevoerd worden...

Voorbeeld:

We maken een programma dat getallen vraagt tot je het woord “stop” intikt. Alle getallen worden onder elkaar genoteerd en onderaan komt de som.

Aangezien we hier niet op voorhand weten hoeveel getallen we zullen optellen wordt hier een voorwaardelijke herhaling met aanvangsvoorwaarde gebruikt.

NS-diagram:

-- BerekenSom -- som ← 0

invoer ← 0

Zolang invoer ≠ “stop”

LEES invoer invoer ≠ “stop” ja neen som←som+invoer CELOMLAAG DRUK som CELLINKS DRUK “som:” Sub BerekenSom() som = 0 invoer = 0

While invoer <> "stop"

invoer = LEES("Geef een getal of tik 'stop' om te eindigen") If invoer <> "stop" Then

som = som + invoer End If CELOMLAAG Wend DRUK (som) CELLINKS DRUK ("som:") End Sub

5.2 De voorwaardelijke herhaling met afbreekvoorwaarde

Het alternatief is de controle op het einde van de te herhalen sequentie plaatsen. We spreken in dit geval van een voorwaardelijke voorwaarde met afbreekvoorwaarde.

NS-diagram:

OPDRACHTEN Totdat voorwaarde

Syntax: Do

opdracht(en)

Loop Until voorwaarde

De opdrachtenreeks zal uitgevoerd worden totdat aan de voorwaarde voldaan is.

Hoe dikwijls wordt de sequentie dus minstens uitgevoerd? ...

minstens 1 keer. De sequentie wordt uitgevoerd vóór de controle gebeurt. Het kan dus zijn...

dat de sequentie onterecht wordt uitgevoerd. We gebruiken deze controlestructuur enkel als ...

de reeks opdrachten hoe dan ook minstens 1 keer uitgevoerd moet worden...

Voorbeeld: Als we hetzelfde voorbeeld als daarnet hernemen dan moeten we onze voorwaarde aanpassen. Was de voorwaarde daarnet “zolang de invoer niet ‘stop’ is” dan moet dit nu worden “totdat de invoer ‘stop’ is”. NS-diagram: -- BerekenSom -- som ← 0 invoer ← 0 LEES invoer invoer ≠ “stop” ja neen som←som+invoer CELOMLAAG Totdat invoer = “stop” DRUK som CELLINKS DRUK “som:” Sub BerekenSom() som = 0 invoer = 0 Do invoer = LEES("Geef een getal of tik 'stop' om te eindigen") If invoer <> "stop" Then som = som + invoer End If CELOMLAAG Loop Until invoer = "stop"

DRUK (som) CELLINKS DRUK ("som:") End Sub

5.3 Oefeningen

Hieronder vind je een aantal opgaven. Kies zelf of je met een voorwaardelijke herhaling met aanvangsvoorwaarde of met afbreekvoorwaarde werkt. Documenteer je algoritme.

1. Berekenen van het gemiddelde van een onbekend aantal getallen

Lees een aantal getallen in en bereken het gemiddelde van deze getallen. Alle ingelezen getallen worden onder elkaar genoteerd. Je weet op voorhand niet hoeveel getallen er zullen zijn. Geef een lege invoer (op OK klikken zonder invoer) na het laatste getal. Bewaar het als Bereken gemiddelde

2. Teken balken tot aan de markering

Zet in een aantal cellen een x. Schrijf nu een programma dat in de actieve kolom alle cellen vanaf de actieve cel tot net boven de cel waar de x in staat in het rood kleurt.

Bewaar als Teken Balken.

3. De rij van Fibonacci

De rij van Fibonacci (zie wiskunde) is een rij getallen die begint met 0 en 1. Alle volgende getallen zijn telkens de som van de twee vorige.

Schrijf een programma dat een willekeurig getal vraagt. Het programma moet dan de rij van Fibonacci geven met alle getallen kleiner of gelijk aan dit getal. In de schermafdruk werd, met A10 actief, 50 opgegeven. Met A12 actief werd 13 opgegeven.

Bewaar als Fibonacci.

5.3 Wat je moet kennen en kunnen

• Het verschil uitleggen tussen een begrensde herhaling, een voorwaardelijke herhaling met aanvangsvoorwaarde en een voorwaardelijke herhaling met afbreekvoorwaarde

• Een voorwaardelijke herhaling in een NS-diagram voorstellen

Inhoudstafel

HOOFDSTUK 1: ALGORITMEN EN DEELALGORITMEN...1

1.1. INLEIDING... 1

1.2. HET BEGRIP ALGORITME... 1

1.3. ENKELE VOORBEELDEN VAN ALGORITMEN... 3

1.3.1 Het recept van een Sultana Cake...3

1.3.2 De morgenstond van een leerling...4

1.4 WAT JE MOET KENNEN EN KUNNEN... 5

HOOFDSTUK 2: METHODE VAN DE STAPSGEWIJZE VERFIJNING...6

2.1 HET GEGEVENSVERWERKEND PROCES... 6

2.2 STAPPEN VOOR HET OPLOSSEN VAN EEN PROBLEEM... 6

2.2.1 Probleemdefinitie ...6 2.2.2 Probleemanalyse ...6 2.2.3 Schema...6 2.2.4 Programmeren...7 2.2.5 Testen ...8 2.2.6 Documenteren ...8

2.3 WAARAAN VOLDOET EEN GOED ALGORITME... 8

2.4 DE METHODE VAN DE STAPSGEWIJZE VERFIJNING... 9

2.4.1 Het principe ...9

2.4.2 Voorbeeld...9

2.4.3 Wat is daar nu het voordeel van?...10

2.5 NAAMGEVING VAN ALGORITMEN... 11

2.6 WERKEN MET MACRO’S... 11

2.6.1 Wat zijn macro’s...11

2.6.2 Een macro opnemen ...12

2.6.3 Een macro aan een knop verbinden. ...13

2.6.4 Een macro verwijderen of verbeteren ...15

2.7 MODULES, PROCEDURES EN FUNCTIES... 16

2.8 EENVOUDIGE ALGORITMEN SCHRIJVEN... 18

2.9 OEFENINGEN... 20

2.9.1 Opnemen en aanpassen van macro’s ...20

2.9.2 Eenvoudige algoritmen schrijven...21

2.10 PROBLEEM BIJ HET OPENEN VAN BESTANDEN DIE MACRO’S BEVATTEN... 22

2.11 WAT JE MOET KENNEN EN KUNNEN... 23

HOOFDSTUK 3: DE SEQUENTIE EN DE BEGRENSDE HERHALING...24

3.1 DE SEQUENTIE... 24

3.2 DE BASISBEVELEN... 25

3.3 GEBRUIK VAN VARIABELEN... 28

3.4 WERKEN MET FUNCTIES... 28

3.4.1 Functies ontwerpen...28

3.4.2 Een zelfgemaakte functie gebruiken in je werkblad ...31

3.4.3 Functies gebruiken in een procedure...32

3.5 DE BEGRENSDE HERHALING... 33

3.5.1 Het principe: het werken met een teller ...33

3.5.2. Een praktisch voorbeeld: tekenen van zebrapaden. ...35

3.6 OEFENINGEN... 42

1. Zebrapad...42

2. Dambordpatroon...43

3.7 WAT JE MOET KENNEN EN KUNNEN... 44

HOOFDSTUK 4: DE SELECTIE...45

4.2 EENZIJDIGE EN TWEEZIJDIGE SELECTIE... 45

4.2.1 Eenzijdige selectie ...45

4.1.2 Tweezijdige selectie...47

4.2 FORMULEREN VAN EEN VOORWAARDE... 49

4.2.1 Enkelvoudige voorwaarde ...49

4.2.2 Samengestelde voorwaarde...49

4.3 GENESTE SELECTIE... 51

4.4 OEFENINGEN... 52

1. Berekenen van de vierkantswortel van een getal ...52

2. Euro-calculator...53

3. Oplossen van vierkantsvergelijkingen...54

4.5 WAT JE MOET KENNEN EN KUNNEN... 55

HOOFDSTUK 5: DE VOORWAARDELIJKE HERHALING...56

5.1 DE VOORWAARDELIJKE HERHALING MET AANVANGSVOORWAARDE... 56

5.2 DE VOORWAARDELIJKE HERHALING MET AFBREEKVOORWAARDE... 57

5.3 OEFENINGEN... 59

1. Berekenen van het gemiddelde van een onbekend aantal getallen...59

2. Teken balken tot aan de markering ...59

3. De rij van Fibonacci ...60

In document Algoritmen met Excel (pagina 56-62)