Componenten van een Algoritme Inhoud

advertisement
Componenten van een Algoritme
Variabelen en hun Inhoud
Instructies
Sekwenties
Selecties
Herhalingen
Procedures
Modules
Documentatie
Inhoud
Metingen, tellingen, hoeveelheden, frekwenties,
tekst,…
Numeriek - Tekens
Eenheden die verband houden met gebruik
(doel)
Voorbeeld:
Ingredienten van recept…
Almond and Honey Slice
1/2 quantity Shotcrust Pastry
185 g unsalted butter
100 g castor sugar
5 tablespoons honey
50 ml cream
50 ml brandy or any other liqueur
or spirit
300 g flaked almonds
From: Stephanie Alexander, The Cook’s
Companion, Viking/Penguin, Ringwood,
Victoria, 1996, p. 349.
Almond and Honey Slice
1/2 quantity Shotcrust Pastry
185 g unsalted butter
100 g castor sugar
5 tablespoons honey
50 ml cream
50 ml brandy or any other liqueur
or spirit
300 g flaked almonds
From: Stephanie Alexander, The Cook’s
Companion, Viking/Penguin, Ringwood,
Victoria, 1996, p. 349.
Preheat oven for 200° C
Line a 30 cm × 20 cm baking tray with
baking paper, and then with pastry
Bake blind for 20 minutes, then
remove weights and foil
Turn 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.
Preheat oven for 200° C
Line a 30 cm × 20 cm baking tray with
baking paper, and then with pastry
Bake blind for 20 minutes, then
remove weights and foil
Turn 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.
Variabelen
3 stukjes cake
50 gram suiker
10 koekjes
Inhoud
Containers voor waarden, getallen,
hoeveelheden, tekst, etc…
Geheugenplaatsen
Variabele
Deze pot kan
bevatten…
etc.
(populaties)
(milimeters)
Variabelen - Inhoud
Toekenning
Naam := waarde
Naam := naam
A := 2
breedte := 34
B := breedte
naam := ‘een tekst’
‘B’ WORDT 34
‘groet’ WORDT ‘Goede morgen samen …’
Variabelen - Inhoud
Beperkingen…
… m.b.t. een bepaald type inhoud:
Type:
Getal
Teken
Componenten van een algoritme
(van instructies)
Variabelen en hun Inhoud
Instructies
Sekwenties
Selecties
(tussen instructies)
Herhalingen (van instructies)
Procedures (functionele verzameling van instructies)
Modules (= idem, als black box)
Documentatie
Instructie
Een aktie die eenvoudig is…
… en ondubbelzinnig …
… waarvan het systeem kennis heeft (kan
begrijpen)…
… en die het ook echt uit kan voeren.
Instructies
Sommige instructies kunnen alleen worden
toegepast op een bepaalde variabele, of een
bepaalde inhoud van een variabele…
Instructies
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 verfijning
Top-Down ontwerp
1 kopje koffie algoritme
(1) Kook water
(2) Doe koffie in kopje
(3) Schenk water in kopje
– Proces is in stappen verdeeld
– Elke stap kan beschreven worden door een
kleiner en eenvoudiger algoritme
–Top-Down ontwerp
Vul de ketel
Zet ketel op fornuis
Wacht tot het water kookt
Haal de ketel van het fornuis
1 kopje koffie algoritme
(1) Kook water
(1)
(2)
(3)
(4)
Open de koffie-bus
Neem er een schepje poeder-koffie uit
Doe de koffie in een kopje
Sluit de koffie-bus
(2) Doe poeder-koffie in kopje
(1)
(2)
(3)
(4)
(3) …
•Stepwise refinement
Doorgaan 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 taal
Opeenvolging = sekwentie van instructies
Preheat oven for 200° C
Line a 30 cm × 20 cm baking tray with
baking paper, and then with pastry
Bake blind for 20 minutes, then
remove weights and foil
Turn 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.
De stappen worden 1 voor 1 uitgevoerd
Elke 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 Slice
1/2 quantity Shotcrust
Pastry
185 g unsalted butter
Instructies worden
100 g castor sugar
gegeven in de volgorde
5 tablespoons honey
waarin ze worden
50 ml cream
uitgevoerd (“executed”)
50 ml brandy or any other
liqueur or spirit
300 g flaked almonds
From: Stephanie Alexander, The Cook’s
Companion, Viking/Penguin, Ringwood,
Victoria, 1996, p. 349.
Sekwentie
Nadelen:
Structuren in de taal
Zeer star algoritme
Verloop 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 algoritme
(van instructies)
Variabelen en hun Inhoud
Instructies
Sekwenties
Selecties
(tussen instructies)
Herhalingen (van instructies)
Procedures (functionele verzameling van instructies)
Modules (= idem, als black box)
Documentatie
Structuren in de taal
0
1
1
a
0
1
0
1
b
0
0
0
1
a EN b
0
1
1
1
a OF b
0
1
1
0
a XOF b
1
0
1
0
NIET b
Controle structuur --> Selectie
Waarheidstabel (truth-table)
0
TRUE
TRUE
Structuren in de taal
<->
<->
Logica <--> Selectie
Variabelen van type boolean:
TRUE (1) en FALSE (0)
TRUE
TRUE
FALSE
(2=2) EN (4=3+1)
(2=2) OF (3>4)
Vergelijkingen:
2=2
4=3+1
3>4
Modules:
EN
OF
XOF
NIET
Selectie
… voorwaarde
… opdracht
Als … Dan … Eindals
voorwaarde:
… Eindals
Dan opdracht
Eindals
Ja /Nee <-> TRUE /FALSE <-> 0 / 1
Als voorwaarde
1
0
Selectie
Als … Dan … Anders
… opdracht
Dan
opdracht
Anders opdracht
… voorwaarde
… opdracht
Als voorwaarde
1
0
Eindals
1:
0:
Selectie
Als
voorwaarde
Dan
opdracht
Anders opdracht
Als
voorwaarde
Dan
opdracht
1:
0: Anders opdracht
Eindals
Eindals
Selectie
3 soorten fouten:
Grensgevallen (‘boundary conditions’)
Bij selectie via GROTER DAN
Wat gebeurt er bij gelijkheid ?
Onmogelijke gevallen
Expressie die nooit TRUE kan zijn:
Als ((leeftijd < 18) EN (leeftijd > 34)) Dan
Onvermijdbare gevallen
Expressie die nooit FALSE kan zijn:
Als ((leeftijd >18) OF (leeftijd < 34)) Dan
Selectie
Als
voorwaarde
Dan
opdracht
Anders
Selectie
[optioneel]
SCHRIJF ‘Dit had ik niet verwacht …!’
[Anders]
alternatief 1
alternatief 2
.
.
alternatief n
voorwaarden
opdrachten
Wanneer
Eindals
1:
0:
[opdracht]
Eindwanneer
Componenten van een algoritme
(van instructies)
Variabelen en hun Inhoud
Instructies
Sekwenties
(= idem, als black box)
Selecties
(tussen instructies)
Herhalingen (van instructies)
Procedures (functionele verzameling van instructies)
Modules
Documentatie
Download