1. Algoritmiek
Inleiding tot programmeren
Jean-Pierre Pluymers
volgend
2. Cursusinhoud
Voorwoord
Samenvatting
Inhoudstafel
Lijst van gebruikte afkortingen en symbolen
Inleiding
Corpus
1 Een probleem oplossen met de top-down methode
1.1 De formulering van een probleem
1.2 Het scenario
1.3 Gegevenstabellen
1.4 Grafische voorstellingen van algoritmes
1.4.1 Het Nassi-Schneidermann diagram
1.4.2 Het PST-diagram
2 De opeenvolging of sequentie
3 De keuzestructuur of selectie
3.1 Relationele operatoren
3.2 De enkelvoudige selectie
3.3 De tweevoudige selectie
3.4 De geneste selectie
3.5 De meervoudige selectie
4 De herhaalstructuur of iteratie
4.1 De begrensde herhaling
4.2 De voorwaardelijke herhaling
Bijlagen
terug
3. Inleiding
In wezen is een computer niets meer dan een
machine die eenvoudige opdrachten uitvoert:
Vraag eerste getal
Vraag tweede getal
Tel het eerste getal en tweede getal op
Toon het resultaat
=> algoritme, afgeleid van de Arabische wiskundige
Mohammed ibn Musa alChowarizmi (9de eeuw)
Een algoritme is en uitvoerbare procedure voor het
oplossen van een probleem.
vorig volgend terug home
4. Opdracht:
Maak een origami-piano
http://www.youtube.com/watch?v=6oLRfr7D2MU
http://web-japan.org/kidsweb/virtual/origami2/exploring01_03.html
vorig volgend terug home
5. Zeef van Eratosthenes
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Priemgetallen: 2 3 5 7 11 13 17 19 23
1. Schrap de getallen 0 en 1
2. Zoek het eerstvolgende niet geschrapte getal en laat dit staan
3. Schrap alle veelvouden van dit getal
4. Herhaal de procedure tot je niets meer kan schrappen
vorig volgend terug home
6. Programmeertaal
Computer verstaat geen zinnen
Computer verstaat wel een aantal
woorden in een juiste volgorde
Dit geheel van instructies noemen we
een programmeertaal
vorig volgend terug home
7. Oplossingen ontwerpen en
beschrijven
Problemen stapsgewijs oplossen:
1. Het probleem formuleren
2. Scenario van het probleem opstellen
3. Vastleggen van de gegevens in een
gegevenstabel
4. Vastleggen van de controlestructuur
5. Opstellen van de programmatekst
(= coderen)
6. Het programma testen en foutvrij maken
vorig volgend terug home
9. Formulering van een probleem
Probleem formuleren: wat is een probleem?
Doel bereiken
Niet meteen duidelijk hoe het doel kan bereikt
worden
Oplossingsmethode bedenken
Niet de oplossing zelf, maar de
oplossingsmethode (proces) staat centraal
vorig volgend terug home
10. Probleemstelling
Maak een programma om de inhoud van een
balk te berekenen. De gebruiker voert de
hoogte, de breedte en de diepte in (in
cm), en de computer berekent de inhoud (in
cm³), die op het scherm wordt weergegeven.
Ondubbelzinnig
Duidelijk zijn wat gegeven en gevraagde is
Hints voor verwerking kunnen meegegeven
worden
vorig volgend terug home
11. Oefeningen
Invoer Verwerking Uitvoer
Fazant, Eend, Gans, Eend, Fazant, Gans,
Alfabetisch ordenen
Zwaan, Pauw, Kip Kip, Pauw, Zwaan
9, 11 Optellen 20
Verheffen tot de 2de
3 9
macht
78, 62, 105, 170, 42, Rangschikken van
42, 62, 78, 90, 105, 170
90 klein naar groot
en hou ik informatica is Ik hou van informatica
leuk programmeren Maak een goede zin en programmeren is
van leuk
vorig volgend terug home
12. Nog een oefening
Bij DoeHetZelf kosten de met vinyl beklede
plafondtegels van 40 cm x 80 cm 25 EUR per pak
van 5. Je hebt 375 EUR beschikbaar. Kom je
hiermee toe om een plafond van 3 m bij 6 m te
bekleden?
Invoer: Bedrag: 375 EUR
5 x 40cm x80cm tegels kost 375
Plafond = 3m x 6m
Verwerking: Bereken oppervlakte plafond
Bereken aantal benodigde tegels
Bereken aantal pakken
Bereken het verschil beschikbaar bedrag - kosten
Uitvoer: Oppervlakte plafond
Aantal benodigde pakken tegels
Kom ik toe met mijn bedrag? (Ja/Nee)
vorig volgend terug home
13. Oplossingsmogelijkheden
Trial and error (gissen en missen)
Top-down methode: kleine deelproblemen lossen
het geheel op (stapsgewijze verfijning)
Voorbeeld: bereken de oppervlakte van deze regelmatige
figuur
vorig volgend terug home
14. Het scenario
Maak een programma om de inhoud
van een balk te berekenen. De
gebruiker voert de hoogte, de breedte
en de diepte in (in cm), en de
computer berekent de inhoud (in
cm³), die op het scherm wordt
weergegeven.
Stel jezelf de juiste vragen om het
probleem te analyseren
Lees de opgave en doorloop het scenario
vorig volgend terug home
15. Grofstructuur
Probleem
Ja Er is een deel-
probleem Invoer
Grofstructuur
Moet er door de gebruiker informatie
worden ingevoerd in de computer? Invoer
Er is geen deel-
Nee probleem Invoer
Verwerking
Ja Er is een deel-
Uitvoer
probleem Verwerking
Moet de computer berekeningen uitvoeren?
Er is geen deel-
Nee probleem Verwerking
Ja Er is een deel-
probleem Uitvoer
Moet de computer een of meer resultaten
weergeven?
Er is geen deel-
Nee probleem Uitvoer
vorig volgend terug home
16. Verfijning van deelproblemen
Deelproblemen “uiteenrafelen” tot zeer
kleine stapjes die de computer kan
begrijpen
Opsplitsen in deelproblemen maakt het
probleem minder complex
Met uitzondering van de verwerking kan de
computer slechts 2 basisopdrachten uitvoeren:
lees of schrijf
De computer is niet erg slim. Hij verstaat enkel
zeer concrete opdrachten.
Concreet <-> abstract
vorig volgend terug home
17. Scenario voor invoer
Invoer
Deelprobleem
Hoe weet de gebruiker welke informatie Invoer
er moet worden ingevoerd?
Schrijf Zin1
Door een verduidelijking op het scherm Lees Hoogte
die aangeeft wat de gebruiker moet ingeven
Schrijf Zin2
De computer leest de informatie die werd Lees Breedte
ingegeven door de gebruiker
Schrijf Zin3
Ja
Moet er nog andere informatie worden Lees Diepte
ingegeven door de gebruiker?
Nee
Er is geen deel-
probleem Invoer
vorig volgend terug home
18. Scenario voor verwerking
Verwerking is niet zomaar in een schema vast te
leggen omwille van het fundamenteel verschillend
karakter van elke verwerking/probleemstelling.
Veel bewerkingen halen hun inspiratie uit de
wiskunde. Toch is er een wezenlijk verschil:
= wordt
vb: getal getal + 1
Houd rekening met 3 basisregels
Deelprobleem Verwerking:
Inhoud Hoogte x Breedte x Diepte
vorig volgend terug home
19. Scenario voor uitvoer
Uitvoer
Moet het weergegeven resultaat in een
Wis scherm
leeggemaakt scherm verschijnen?
Deelprobleem
Uitvoer
Hoe weet de gebruiker wat het
weergegeven resultaat betekent?
Schrijf Zin4,
Inhoud
Door er een beschrijving bij te zetten die
duidelijk maakt waarover het gaat.
Daarna zet de computer het resultaat
achter dit zinnetje op het scherm.
Ja
Moeten er nog andere resultaten
weergegeven worden?
Nee
Er is geen deel-
probleem Uitvoer
vorig volgend terug home
20. Gegevenstabellen
Voor overzicht van gegevens
Elk deelprobleem een aparte gegevenstabel
Nr Naam Soort Type Commentaar
1
2
vorig volgend terug home
21. Nr De gegevens worden doorlopend genummerd.
Naam Hier vullen we een naam in voor elk gegeven. Let op:
elk gegeven moet een unieke naam hebben
een naam wordt steeds aan elkaar geschreven
gebruik een korte en zinvolle naam
Soort Gegeven waarvan de waarde door de programmeur in het
Constante
………………………………………: programma vastgelegd wordt, en niet meer kan veranderen.
Gegeven waarvan de waarde steeds kan gewijzigd kan worden.
Variabele
………………………………………:
Gegeven dat slechts in één deelprobleem voorkomt.
Lokaal
………………………………………:
Gegeven dat in meerdere deelproblemen voorkomt.
Globaal
………………………………………:
Type De benaming die aan gegevenstypes gegeven wordt, is verschillend van de ene tot de
andere programmeertaal. In contextvrije programmeeromgevingen (Isolab, Softalgos,
Struktograaf, …) en in Javascript hebben gegevens geen gegevenstype. Toch kunnen we
wel altijd twee types van gegevens onderscheiden:
Gegeven waarmee je niet kan rekenen.
Alfanumerieke gegevens
………………………………………………………………………:
Gegeven waarmee je wel kan rekenen.
Numerieke gegevens
………………………………………………………………………:
Commentaar In de laatste kolom noteren we de waarde van de constanten, d.w.z. de inhoud van een
constant gegeven.
vorig volgend terug home
22. Numeriek of alfanumeriek?
Getallen bij voorkeur als numerieke
gegevens bewaren om
Berekeningen kunnen gemaakt worden
Plaatsbesparing in het geheugen van de
computer
Sortering van numerieke en
alfanumerieke tekens is verschillend
vorig volgend terug home
23. Gegeven
Ja
Variabel gegeven
Kan de waarde van het gegeven in
de loop van het programma wijzigen?
Constant gegeven
Neen
Noteer de waarde van
het gegeven in de
kolom "commentaar".
Ja
Globaal gegeven
Komt het gegeven in meer dan
één deelprobleem voor?
Lokaal gegeven
Neen
Ja
Numeriek gegeven
Moet er met het gegeven gerekend of
numeriek gesorteerd worden?
Alfanumeriek gegeven
Neen
vorig volgend terug home
24. Gegevenstabellen invullen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Zin1 Const lok Alfan. Geef de hoogte (in cm)
2 Hoogte Var glob Num.
3 Zin2 Const lok Alfan. Geef de breedte (in cm)
4 Breedte Var glob Num.
5 Zin3 Const lok Alfan. Geef de diepte (in cm)
6 Diepte Var glob Num.
vorig volgend terug home
25. Gegevenstabellen invullen
Deelprobleem Verwerking
Nr Naam Soort Type Commentaar
1 Inhoud Var glob Num.
2 Hoogte Var glob Num.
3 Breedte Var glob Num.
4 Diepte Var glob Num.
vorig volgend terug home
26. Gegevenstabellen invullen
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Zin4 Const lok Alfan. De inhoud bedraagt (in cm3)
2 Inhoud Var glob Num.
vorig volgend terug home
27. Grafische voorstelling van
algoritmes
Balk Invoer
Invoer Schrijf Zin1
Verwerking Lees Hoogte
Uitvoer Schrijf Zin2
Lees Breedte
Schrijf Zin3
Nassi-Schneidermann
Lees Diepte
diagram
of PSD (Programma Verwerking
Structuur Diagram)
Inhoud ← Hoogte x Breedte x Diepte
of Structogram
Uitvoer
Schrijf Zin4, Inhoud
vorig volgend terug home
28. Grafische voorstelling van
algoritmes Invoer
Schrijf Lees Schrijf Lees
1
Zin1 Hoogte Zin2 Breedte
PST-diagram
Programma 1
Schrijf
Zin3
Lees
Diepte
Structuur Techniek
Verwerking
Inhoud <--
Balk Hoogte x Breedte
x Diepte
Invoer Verwerking Uitvoer Einde
Uitvoer
Schrijf
Zin4, Inhoud
vorig volgend terug home
29. Verklaringen symbolen van
het PST-diagram
Naam van het programma + Einde
Deelprobleem
Enkelvoudige opdracht
1 Regeleinde + begin van een nieuwe regel
vorig volgend terug home
30. Controlestructuren
De sequentie
De selectie
De iteratie
vorig volgend terug home
31. De sequentie
Betekent letterlijk: opeenvolging. In dit geval: opeenvolging
van opdrachten
Vergelijking met een recept uit een kookboek
Verhit de wok (of een brede hoge braadpan) en doe er de
gemarineerde runderreepjes in.
Bak ongeveer 5 min.
Voeg de reepjes Chinese kool en de champignonschijfjes toe.
Roerbak nog 5 minuten, zodat de groenten gaar worden.
Voeg de zoetzure saus en de roerbakmie toe en doe er 5 dl
water bij.
Roerbak nog ongeveer 4 minuten, zodat de roerbakmie het
vocht vrijwel volledig kan opnemen.
Elke opdracht wordt slechts 1 keer in de vooropgestelde
volgorde uitgevoerd.
vorig volgend terug home
32. Oefeningen
Oefening 1
Maak een programma om het wisselgeld op een te
betalen bedrag te berekenen. Het te betalen bedrag en de
gegeven som worden ingevoerd door de gebruiker (beide
in euro). De computer berekent het bedrag van het
wisselgeld, en dat wordt op het scherm weergegeven.
Oefening 2
Maak een programma om de kostprijs van een autorit te
berekenen. De gebruiker geeft de prijs van 1 liter
brandstof in, het aantal afgelegde kilometers en het
brandstofverbruik (in liter per 100 km) in. De computer
berekent de totale prijs van het verbruik tijdens de autorit,
en die prijs verschijnt op het scherm.
vorig volgend terug home
33. De selectie
Relationele operatoren
Zorgen ervoor dat we objecten met elkaar kunnen vergelijken
Wiskunde en informatica kennen dezelfde operatoren, maar ze
worden anders voorgesteld
= is gelijk aan
< is kleiner dan
> is groter dan
<= is kleiner dan of gelijk aan
>= is groter dan of gelijk aan
<> is niet gelijk aan
Waarom gebruiken we in de informatica soms andere
symbolen voor vergelijkingen dan in de wiskunde?
Omdat een aantal wiskundige tekens niet op een
toetsenbord voorkomen. vorig volgend terug home
34. Elke stap
Moet de stap zowiezo Ja Programmeer de stap
Scenario voor een selectie
altijd worden gezet?
Neen
gewoon onder de vorige.
Scenario Bepaal de voorwaarde van de
selectiestructuur.
voor een Programmeer de stap die moet
gezet worden indien aan de
voorwaarde voldaan is.
selectie Moet er nog een stap gezet Ja
worden indien aan de
Programmeer die
stap onder de vorige.
voorwaarde voldaan is?
Neen
Ja
Moeten er stappen worden gezet indien Neen Moet er nog een
Neen
niet aan de voorwaarde is voldaan? stap worden gezet?
Ja
Einde van het
(deel)probleem.
Programmeer de stap die moet
gezet worden indien niet aan de
voorwaarde voldaan is.
Moet er nog een stap gezet Ja
Programmeer die
worden indien niet aan de
stap onder de vorige.
voorwaarde voldaan is?
Neen vorig volgend terug home
35. De enkelvoudige selectie
Opdracht
Maak een programma om te berekenen hoeveel
uren een student tijdens een jaar moet studeren.
Per studiepunt moet een student 25 uren
studeren. De gebruiker geeft het aantal
studiepunten van een opleiding in. Op het
scherm verschijnt het aantal studie-uren. Indien
het aantal studie-uren hoger is dan 1500,
verschijnt de boodschap : “U zal geen tijd meer
hebben voor uw lief.”
Wat is de voorwaarde in de opdracht
Uren > 1500
vorig volgend terug home
36. Enkelvoudige selectie:
Scenario
Grofstructuur
Invoer
Verwerking
Uitvoer
Verfijningen
Deelprobleem Invoer
Schrijf Zin1
Lees Studiepunten
Deelprobleem Verwerking
Uren Studiepunten x 25
Deelprobleem Uitvoer
Schrijf Zin2, Uren
Als Uren > 1500 dan schrijf Zin3
vorig volgend terug home
37. Enkelvoudige selectie:
Gegevenstabellen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Zin1 Const lok Alfan. Geef het aantal studiepunten
2 Studiepunten Var glob Num
Deelprobleem Verwerking
Nr Naam Soort Type Commentaar
1 Uren Var glob Num
2 Studiepunten Var glob Num
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Zin2 Const lok Alfan. Het aantal studie-uren bedraagt
2 Uren Var glob Num
3 Zin3 Const lok Alfan. U zal geen tijd meer hebben voor uw lief
vorig volgend terug home
38. Enkelvoudige selectie:
NS-diagram
Grofstructuur Verfijningen
Studeren Invoer
Invoer Schrijf Zin1
Verwerking Lees Studiepunten
Uitvoer
Verwerking
Uren Studiepunten x 25
Uitvoer
Schrijf Zin2, Uren
Uren > 1500
Ja Neen
Schrijf Zin3 /
vorig volgend terug home
39. Verfijning
Enkelvoudige selectie: Invoer
PST-diagram
Schrijf Lees
Zin1 Studiepunten
Grofstructuur
Studeren
Verwerking
Invoer Verwerking Uitvoer Einde
Uren <--
Studiepunten
x 25
Uitvoer
Schrijf Zin2,
Uren > 1500
Uren
Ja Neen
Schrijf Zin3 /
vorig volgend terug home
40. De tweevoudige selectie
Opdracht
Maak een programma om te bepalen of een
verkoper een premie krijgt. Indien de verkoper
voor meer dan 2500 euro verkoopt, krijgt hij een
premie van 5 % van het bedrag van de
verkochte goederen. Zoniet krijgt hij geen
premie. De gebruiker voert het bedrag van de
verkochte goederen in, en op het scherm
verschijnt het bedrag van de premie, ofwel de
boodschap dat de verkoper geen premie krijgt.
vorig volgend terug home
42. Tweevoudige selectie:
Gegevenstabellen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Zin1 Const lok Alfan. Hoeveel heeft de verkoper verkocht (in €)
2 Verkoop Var glob Num
Deelprobleem Verwerking
Nr Naam Soort Type Commentaar
1 Premie Var glob Num
2 Verkoop Var glob Num
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Premie Var glob Num
2 Verkoop Var glob Num
3 Zin2 Const lok Alfan. De premie bedraagt (in €)
4 Zin3 Const lok Alfan De verkoper krijgt geen premie
vorig volgend terug home
44. Tweevoudige selectie:
PST-diagram
Grofstructuur Verfijning
Verkoper Invoer Verwerking
Invoer Verwerking Uivoer Einde Schrijf Zin1 Lees Verkoop Premie Verkoop / 20
Uitvoer
Verkoop > 2500
Ja Neen
Schrijf Zin2, Schrijf Zin3
Premie
vorig volgend terug home
45. De geneste selectie
Selectie beperkt tot slecht 2 keuzes: waar of vals.
Wat bij 3 keuzemogelijkheden?
Opdracht
Maak een programma waarbij de betekenis van een attest
aan het einde van het schooljaar wordt weergegeven. De
gebruiker geeft de letter van het attest in (A, B of C).
Indien het een A-attest is, verschijnt de boodschap "U
mag verder in dezelfde studierichting." Indien het een B-
attest is, verschijnt de boodschap "U mag verder in een
andere richting." Indien het een C-attest is, verschijnt de
boodschap "U moet het jaar overdoen."
vorig volgend terug home
46. Geneste selectie:
Scenario
Grofstructuur
Invoer
Uitvoer
Verfijningen
Deelprobleem Invoer
Schrijf Zin1
Lees Attest
Deelprobleem Uitvoer
Als Attest = A dan
Schrijf Zin2
Anders
Als Attest = B dan
Schrijf Zin3
Anders
Schrijf Zin 4
vorig volgend terug home
47. Geneste selectie:
Gegevenstabellen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Zin1 Const lok Alfan. Geef het attest (A, B of C)
2 Attest Var glob Alfan.
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Attest Var glob Alfan.
2 Zin2 Const lok Alfan. U mag verder in dezelfde studierichting
3 Zin3 Const lok Alfan. U mag verder in een andere studierichting
4 Zin4 Const lok Alfan. U moet het jaar overdoen
vorig volgend terug home
48. Geneste selectie:
NS-diagram
Grofstructuur Verfijningen
Attest Invoer
Invoer Schrijf Zin1
Uitvoer Lees Attest
Uitvoer
Attest =A
Ja Neen
Attest =B
Schrijf Zin2
Ja Neen
Schrijf Zin3 Schrijf Zin4
vorig volgend terug home
49. Geneste selectie: Verfijning
PST-diagram Invoer
Grofstructuur Schrijf Lees
Zin1 Attest
Uitslag
Uitvoer
Invoer Uitvoer Einde
Attest = A
Ja Neen
Schrijf Zin2 Attest = B
Ja Neen
Schrijf Zin3 Schrijf Zin4
vorig volgend terug home
50. De meervoudige selectie
Teveel geneste selecties worden onoverzichtelijk.
Gebruik daarom liever een meervoudige selectie.
Opdracht
Maak een programma om de totaalprijs te berekenen van
de aankoop van computers. De gebruiker geeft in hoeveel
computers een bedrijf aankoopt, en geeft de basisprijs van
een computer in. Wanneer het bedrijf meer dan 25
computers koopt, wordt er 10% korting gegeven. Bij meer
dan 50 computers bedraagt de korting 15%. Als meer dan
100 computers worden aangekocht, dan bedraagt de
korting 20% en bij meer dan 200 computers wordt zelfs
25% korting toegekend. In een leeggemaakt scherm
verschijnt de totaalprijs van de aankoop.
vorig volgend terug home
51. Meervoudige selectie:
Scenario
Grofstructuur
Invoer Deelprobleem Verwerking
Verwerking Totaal Aantal x Basisprijs
Uitvoer Als Aantal
> 200: Totaal Totaal x 0,75
> 100: Totaal Totaal x 0,8
Verfijningen > 50: Totaal Totaal x 0,85
> 25: Totaal Totaal x 0,9
Deelprobleem Invoer
Deelprobleem Uitvoer
Schrijf Zin1
Wis scherm
Lees Aantal
Schrijf Zin3, Totaal
Schrijf Zin2
Lees Basisprijs
vorig volgend terug home
52. Meervoudige selectie:
Gegevenstabellen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Zin1 Const lok Alfan. Geef het aantal computers
2 Aantal Var glob Num
3 Zin2 Const lok Alfan. Geef de basisprijs van één computer (in €)
4 Basisprijs Var glob Num
Deelprobleem Verwerking
Nr Naam Soort Type Commentaar
1 Aantal Var glob Num
2 Basisprijs Var glob Num
3 Totaal Var glob Num
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Zin3 Const lok Alfan. De totaalprijs bedraagt (in €)
2 Totaal Var glob Num
vorig volgend terug home
53. Meervoudige selectie:
NS-diagram
Grofstructuur Verfijningen
Computers Invoer Uitvoer
Invoer Schrijf Zin1 Wis scherm
Verwerking Lees Aantal Schrijf Zin3, Totaal
Uitvoer Schrijf Zin2
Lees Basisprijs
Verwerking
Totaal Aantal x Basisprijs
Aantal
> 200 > 100 > 50 > 25
Totaal Totaal Totaal Totaal Totaal Totaal Totaal Totaal
x 0,75 x 0,8 x 0,85 x 0,9
vorig volgend terug home
54. Meervoudige selectie: Verwerking
PST-diagram Totaal
Totaal x Aantal
Aantal
Grofstructuur >200 >100 >50 >25
Totaal Totaal Totaal Totaal
Computers Totaal x 0,75 Totaal x 0,8 Totaal x 0,85 Totaal x 0,9
Invoer Verwerking Uitvoer Einde Uitvoer
Verfijning
Schrijf Zin3,
Wis scherm
Totaal
Invoer
Schrijf Lees Schrijf Lees
Zin1 Aantal Zin2 Basisprijs
vorig volgend terug home
55. De iteratie of herhaling
Meerdere keren hetzelfde programmeren
wordt saai en op den duur onoverzichtelijk
Bovendien meer programmacode =>
softwarepakket groter
Er bestaan 2 soorten herhalingen:
Begrensde herhaling: het aantal herhalingen is
bekend
Voorwaardelijke herhaling: het aantal
herhalingen is niet gekend en is dus afhankelijk
van een bepaalde voorwaarde
vorig volgend terug home
56. E k
l e s t a p
K a n d e s Jt aa p P m o eg e r a m d a n
r r m e e r d e
é é n k e e r w o r h d e e r n h a g ae l z t e r t u ? c
s t u u r N e e n
N e e n I n d i e n e
j n
i e e
J a
w e r k t : m o e
e v e n e e n s w o r
M o e t d e J sa t Pa r p o g z r o a w mi
e z mo e e r d e s t a p
a t
l d
j
i w o r d e n g g e z e tn ?
e w o o o n d e r d e v o r g e .
i
De N e e n
begrensde B e
s
p
e
a
e
l
a
c
l
t
d
e
i
e
s t
v
r
o
u
o
c
r
t
w
u
a
u
a
r
r
.
d e v a n d e
herhaling: P
g
r
v
e
o
o
z
g
o
e
r
r
t
a
w
m
a
w
a
o
m
r
r
d
d
e
e
e
e
n
r
v o
n
i
d
d
l
d
e
a
e
i
a
n
s
n
t
a
a
s
i
a
p
.
n
d
d
e
i
e
m o e t
Schema M
w o
o
r
e
d
t
e n
e r
J
n
i
a
d
n
P
e
i
o
r
n
g
o g r
e e n
a m
a a n
s
m
d e
t a p
e e r
g e
d
z
e
i
e t
s t a p o n d e r d e v o r g
i e .
v o o r w a a r d e v o ld a a n s ?
i
N e e n
J a
M o e t e n e r s t a p p e n w o r d e n Mg e o z e e t t e i r N e ne
n d i e n
n e
i t a a n d eN e v e on o r w a a r d e s
i v so t l aa pa n w
d ? o r d e n
J a
P r o g r a m m e e r d e s t a p d e
i m o e t
E n d e
i
g e z e t w o r d e n n
i d e
i n n e
i t a a n d e
( d e e l)
v o o r w a a r d e v o d
l a a n s
i .
M o e t e J r a I n so g d i e e sn t
e J a as pt a ap f hg ae nz ke et l
k
j
i
w o r d e n n d iv n
i e a n n ie te n a a n
e n i e u d ew e
v o o r w a a r d e v o vo o lw a a n
r d a a r d ie ?
s ?
N e e n
N e e n
P r o g r a m m e e r d e
i
s t a p o n d e r d e v o r g
i e .
vorig volgend terug home
57. Begrensde herhaling:
Opdracht
Opdracht:
Maak een programma om de totale winst
van een bedrijf over de twaalf maanden
van een jaar te berekenen. De gebruiker
geeft voor elke maand de inkomsten en
de uitgaven in (in euro). De computer
berekent de totale winst over het ganse
jaar, en die verschijnt op het scherm
vorig volgend terug home
59. Begrensde herhaling:
Gegevenstabellen
Deelprobleem Invoer
Nr Naam Soort Type Commentaar
1 Jaarwinst Var glob Num.
2 Teller Var lok Num
3 Zin1 Const lok Alfan. Geef de inkomsten van de maand
4 Inkomsten Var glob Num
5 Zin2 Const lok Alfan. Geef de uitgaven van de maand
6 Uitgaven Var lok Num
7 Maandwinst Var lok Num
Deelprobleem Uitvoer
Nr Naam Soort Type Commentaar
1 Zin3 Const lok Alfan. De jaarwinst bedraagt
2 Jaarwinst Var glob Num
vorig volgend terug home
61. Winsten
Begrensde herhaling:
Invoer Uitvoer Einde
PST-diagram
Invoer
Jaarwinst Teller van
0 1 tot 12
Winsten
1
Schrijf Zin1, Lees Schrijf Zin2, Lees
Invoer Uitvoer Einde Teller Inkomsten Teller Uitgaven
Invoer Maandwinst Jaarwinst
1 Inkomsten +
Uitgaven
Jaarwinst +
Maandwinst
Uitvoer
1
Schrijf Zin3,
Jaarwinst
1
vorig volgend terug home
62. Begrensde herhaling:
Constante of variabele herhaling
Het aantal herhalingen kan ook op
basis van een variabele plaatsvinden
De gebruiker zelf of een bereking in
het programma kan bepalen hoeveel
keer de herhaling plaatsvindt.
vorig volgend terug home
63. De voorwaardelijke herhaling
Soms is een herhaling niet afhankelijk
van een grenswaarde, maar wel van
een voorwaarde
vorig volgend terug home
64. De voorwaardelijke herhaling:
Schema deel 1
E k
l e s t a p
J a W o r d t J a h e t a a n t a l
K a n d e s t a p m e e r B d a n
e g r e n d s e h e r h a l
n g
i
h e r h a ln g e n
i v a s t g e le g d
é é n k e e r w o r d e n g e z e t
E in d w ? a r
a d e = c o n s t a n t
d o o r d e p r o g r a m m e u r ?
N e e n N e e n
W o r d t h e t a a n t a l
h e r h a n
i
l gJ ea n B e v g a r s e t n g d e s l e g d h
e e r h a l n g
i
d o o r d e E ie d w a a r
g n b r u i k e d e o =
r f v a r a b e
i l
h e t p r o g r a m m a z e lf ?
N e e n
W o r d t J a h e t a a n t a l
V o o r w a a r d e k
j
i
l e
h e r h a ln g e n
i b e p a a d
l
h e r h a n
i
l g
d o o r e e n v o o r w a a r d e ?
P r o g r a m m e e r d e h e r h a a s
l t r u c t
N e e n
J a I n d ie n e
j n
i e e n h e r h
w e r k t : m o e t d e v
e v e n v a a k w o r d e n h
M o e t d e J s t P ar po g zr oa w i
a m e zm o e e r d e s t a p
a t
l d
j
i w o r d e n g e g we o z o e n t ? o n d e r d e v o r g
i e .
N e e n
B e p a a l d e v o o r w a a r d e v a n d e vorig volgend terug home