Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen...

27
Componenten van een Componenten van een Algoritme Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie

Transcript of Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen...

Page 1: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Componenten van een AlgoritmeComponenten van een Algoritme

Variabelen en hun InhoudInstructies

Sekwenties

SelectiesHerhalingenProcedures

Modules

Documentatie

Page 2: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Inhoud Inhoud

Metingen, tellingen, hoeveelheden, frekwenties, tekst,…

Numeriek - TekensEenheden die verband houden met

gebruik (doel)Voorbeeld:

Ingredienten van recept…

Page 3: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Almond and Honey SliceAlmond and Honey Slice

1/2 quantity Shotcrust Pastry185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine a 30 cm 20 cm baking tray with baking paper, and then with pastryBake blind for 20 minutes, then remove weights and foilTurn oven up to 220° C.Bring remaining ingredients to a boil, stirring.Spread evenly over pastry.Bake until topping is bubbling and has caramelised evenly, about 15 minutes.Cool before cutting into fingers or squares.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Page 4: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Almond and Honey SliceAlmond and Honey Slice

1/2 quantity Shotcrust Pastry185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine a 30 cm 20 cm baking tray with baking paper, and then with pastryBake blind for 20 minutes, then remove weights and foilTurn oven up to 220° C.Bring remaining ingredients to a boil, stirring.Spread evenly over pastry.Bake until topping is bubbling and has caramelised evenly, about 15 minutes.Cool before cutting into fingers or squares.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Page 5: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

VariabelenVariabelen

Containers voor waarden, getallen, hoeveelheden, tekst, etc…

Geheugenplaatsen

Deze pot kan bevatten…

10 koekjes

50 gram suiker

3 stukjes cake

etc.

InhoudVariabele

Page 6: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Variabelen - InhoudVariabelen - Inhoud

ToekenningNaam := waarde Naam := naamA := 2 (populaties)breedte := 34 (milimeters)B := breedtenaam := ‘een tekst’

‘B’ WORDT 34‘groet’ WORDT ‘Goede morgen samen …’

Page 7: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Variabelen - InhoudVariabelen - InhoudBeperkingen…

… m.b.t. een bepaald type inhoud:Type:

GetalTeken

Page 8: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Componenten van een algoritmeComponenten van een algoritme

Variabelen en hun InhoudInstructies

Sekwenties (van instructies)

Selecties (tussen instructies)Herhalingen (van instructies)Procedures (functionele verzameling van

instructies)

Modules (= idem, als black box)

Documentatie

Page 9: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

InstructieInstructie

Een aktie die eenvoudig is…… en ondubbelzinnig …… waarvan het systeem kennis heeft (kan

begrijpen)…… en die het ook echt uit kan voeren.

Page 10: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

InstructiesInstructies

Sommige instructies kunnen alleen worden toegepast op een bepaalde variabele, of een bepaalde inhoud van een variabele…

Page 11: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

InstructiesInstructies

Als je een algoritme schrijft, maak dan iedere instructie zo eenvoudig mogelijk, en voor maar 1 uitleg vatbaar…

Snij de kip in stukjes en braad die aan alle zijden in een casserole in hete olijfolie.

Snij de kip in stukjes.Verwarm olijfolie in een casserole.Braad de stukjes kip in de casserole.

Page 12: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Stapsgewijze verfijningStapsgewijze verfijning

Top-Down ontwerp1 kopje koffie algoritme(1)Kook water(2)Doe koffie in kopje(3)Schenk water in kopje

Proces is in stappen verdeeldElke stap kan beschreven worden door

een kleiner en eenvoudiger algoritme

Page 13: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

–Top-Down ontwerpTop-Down ontwerp1 kopje koffie algoritme(1) Kook water

(1) Vul de ketel(2) Zet ketel op fornuis(3) Wacht tot het water kookt(4) Haal de ketel van het fornuis

(2) Doe poeder-koffie in kopje(1) Open de koffie-bus(2) Neem er een schepje poeder-koffie uit(3) Doe de koffie in een kopje(4) Sluit de koffie-bus

(3) …

Page 14: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

•Stepwise refinementStepwise refinementDoorgaan tot verfijning voldoende

gedetailleerd en nauwkeurig is om uitvoering door de betreffende processor mogelijk te maken

Interpretatief vermogen van de processor wordt bekend verondersteld

Computer interpreteert alles wat op correcte wijze in een programmeertaal is geformuleerd

Stoppen met verfijnen wanneer elke stap van het algoritme in de betreffende taal is geformuleerd.

Page 15: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Structuren in de taalStructuren in de taal

Opeenvolging = sekwentie van instructiesDe stappen worden 1 voor 1 uitgevoerdElke stap wordt precies 1 maal uitgevoerd -

geen enkele stap wordt overgeslagen of herhaald

De volgorde waarin de stappen worden uitgevoerd is dezelfde als die waarin ze opgeschreven staan

Het beeïndigen van de laatste stap betekent beeïndiging van het algoritme

Page 16: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Almond and Honey Almond and Honey SliceSlice

1/2 quantity Shotcrust Pastry185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine a 30 cm 20 cm baking tray with baking paper, and then with pastryBake blind for 20 minutes, then remove weights and foilTurn oven up to 220° C.Bring remaining ingredients to a boil, stirring.Spread evenly over pastry.Bake until topping is bubbling and has caramelised evenly, about 15 minutes.Cool before cutting into fingers or squares.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Instructies worden gegeven in de volgorde

waarin ze worden uitgevoerd (“executed”)

Page 17: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Structuren in de taalStructuren in de taal

Sekwentie

Nadelen:Zeer star algoritmeVerloop van de uitvoering staat vast - kan

niet o.i.v. de omstandigheden worden veranderd

Geen voorwaardelijke uitvoering van stappen mogelijk

Geen herhaling van stappen mogelijk

Page 18: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Componenten van een algoritmeComponenten van een algoritme

Variabelen en hun InhoudInstructies

Sekwenties (van instructies)

Selecties (tussen instructies)Herhalingen (van instructies)Procedures (functionele verzameling van

instructies)

Modules (= idem, als black box)

Documentatie

Page 19: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Structuren in de taalStructuren in de taal

Controle structuur --> SelectieWaarheidstabel (truth-table)

a b a EN b a OF b a XOF b NIET b

1 1 1 1 0 0

1 0 0 1 1 1

0 1 0 1 1 0

0 0 0 0 0 1

Page 20: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Structuren in de taalStructuren in de taalLogica <--> Selectie

Variabelen van type boolean:TRUE (1) en FALSE (0)

Vergelijkingen:2 = 2 TRUE4 = 3 + 1 TRUE3 > 4 FALSE

Modules:EN (2=2) EN (4=3+1) <->

TRUEOF (2=2) OF (3>4) <-> TRUEXOFNIET

Page 21: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

SelectieSelectieAls … Dan … Eindals

… voorwaarde… opdracht

1

0

voorwaarde: Ja /Nee <-> TRUE /FALSE <-> 0 / 1

Als voorwaarde

EindalsDan opdracht

Page 22: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Anders opdracht

Als voorwaarde

SelectieSelectieAls … Dan … Anders … Eindals

… voorwaarde … opdracht

… opdracht

1

0

Dan opdracht

Eindals

Page 23: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

SelectieSelectie

Als voorwaarde

Dan opdracht

Anders opdracht

Als voorwaarde

Dan opdracht

Andersopdracht

EindalsEindals

1:

0:

1:

0:

Page 24: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

SelectieSelectie

3 soorten fouten:Grensgevallen (‘boundary conditions’)

Bij selectie via GROTER DANWat gebeurt er bij gelijkheid ?

Onmogelijke gevallenExpressie die nooit TRUE kan zijn:

Als ((leeftijd < 18) EN (leeftijd > 34)) Dan

Onvermijdbare gevallenExpressie die nooit FALSE kan zijn:

Als ((leeftijd >18) OF (leeftijd < 34)) Dan

Page 25: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

SelectieSelectie

Als voorwaarde

Dan opdracht

AndersSCHRIJF ‘Dit had ik niet verwacht …!’

Eindals

Page 26: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

SelectieSelectie

Wanneervoorwaardenopdrachten

alternatief 1alternatief 2..alternatief n

[Anders] [optioneel][opdracht]

Eindwanneer

1:

0:

Page 27: Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen Procedures Modules Documentatie.

Componenten van een algoritmeComponenten van een algoritme

Variabelen en hun InhoudInstructies

Sekwenties (van instructies)

Selecties (tussen instructies)Herhalingen (van instructies)Procedures (functionele verzameling van

instructies)

Modules (= idem, als black box)

Documentatie