Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen...
-
Upload
samuel-verbeke -
Category
Documents
-
view
213 -
download
0
Transcript of Componenten van een Algoritme Variabelen en hun Inhoud Instructies Sekwenties Selecties Herhalingen...
Componenten van een AlgoritmeComponenten van een Algoritme
Variabelen en hun InhoudInstructies
Sekwenties
SelectiesHerhalingenProcedures
Modules
Documentatie
Inhoud Inhoud
Metingen, tellingen, hoeveelheden, frekwenties, tekst,…
Numeriek - TekensEenheden die verband houden met
gebruik (doel)Voorbeeld:
Ingredienten van recept…
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.
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.
VariabelenVariabelen
Containers voor waarden, getallen, hoeveelheden, tekst, etc…
Geheugenplaatsen
Deze pot kan bevatten…
10 koekjes
50 gram suiker
3 stukjes cake
etc.
InhoudVariabele
Variabelen - InhoudVariabelen - Inhoud
ToekenningNaam := waarde Naam := naamA := 2 (populaties)breedte := 34 (milimeters)B := breedtenaam := ‘een tekst’
‘B’ WORDT 34‘groet’ WORDT ‘Goede morgen samen …’
Variabelen - InhoudVariabelen - InhoudBeperkingen…
… m.b.t. een bepaald type inhoud:Type:
GetalTeken
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
InstructieInstructie
Een aktie die eenvoudig is…… en ondubbelzinnig …… waarvan het systeem kennis heeft (kan
begrijpen)…… en die het ook echt uit kan voeren.
InstructiesInstructies
Sommige instructies kunnen alleen worden toegepast op een bepaalde variabele, of een bepaalde inhoud van een variabele…
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.
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
–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) …
•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.
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
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”)
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
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
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
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
SelectieSelectieAls … Dan … Eindals
… voorwaarde… opdracht
1
0
voorwaarde: Ja /Nee <-> TRUE /FALSE <-> 0 / 1
Als voorwaarde
EindalsDan opdracht
Anders opdracht
Als voorwaarde
SelectieSelectieAls … Dan … Anders … Eindals
… voorwaarde … opdracht
… opdracht
1
0
Dan opdracht
Eindals
SelectieSelectie
Als voorwaarde
Dan opdracht
Anders opdracht
Als voorwaarde
Dan opdracht
Andersopdracht
EindalsEindals
1:
0:
1:
0:
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
SelectieSelectie
Als voorwaarde
Dan opdracht
AndersSCHRIJF ‘Dit had ik niet verwacht …!’
Eindals
SelectieSelectie
Wanneervoorwaardenopdrachten
alternatief 1alternatief 2..alternatief n
[Anders] [optioneel][opdracht]
Eindwanneer
1:
0:
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