powerpoint

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.
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.
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.
Variabelen
Containers voor waarden, getallen,
hoeveelheden, tekst, etc…
Geheugenplaatsen
Variabele
Inhoud
10 koekjes
Deze pot kan
bevatten…
50 gram suiker
3 stukjes cake
etc.
Variabelen - Inhoud
Toekenning
Naam := waarde
Naam := naam
A := 2
breedte := 34
B := breedte
naam := ‘een tekst’
(populaties)
(milimeters)
‘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
Variabelen en hun Inhoud
Instructies
Sekwenties
(van instructies)
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
1 kopje koffie algoritme
(1) Kook water
(1)
(2)
(3)
(4)
Vul de ketel
Zet ketel op fornuis
Wacht tot het water kookt
Haal de ketel van het fornuis
(2) Doe poeder-koffie in kopje
(1)
(2)
(3)
(4)
(3) …
Open de koffie-bus
Neem er een schepje poeder-koffie uit
Doe de koffie in een kopje
Sluit de koffie-bus
•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
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.
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.
Structuren in de taal
Sekwentie
Nadelen:
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
Variabelen en hun Inhoud
Instructies
Sekwenties
(van instructies)
Selecties
(tussen instructies)
Herhalingen (van instructies)
Procedures (functionele verzameling van instructies)
Modules (= idem, als black box)
Documentatie
Structuren in de taal
Controle structuur --> Selectie
Waarheidstabel (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 taal
Logica <--> Selectie
Variabelen van type boolean:
TRUE (1) en FALSE (0)
Vergelijkingen:
2=2
4=3+1
3>4
TRUE
TRUE
FALSE
Modules:
EN
OF
XOF
NIET
(2=2) EN (4=3+1)
(2=2) OF (3>4)
<->
<->
TRUE
TRUE
Selectie
Als … Dan … Eindals
… voorwaarde
… opdracht
voorwaarde:
Ja /Nee <-> TRUE /FALSE <-> 0 / 1
Als voorwaarde
1
0
Dan opdracht
Eindals
Selectie
Als … Dan … Anders
… Eindals
… voorwaarde
… opdracht
… opdracht
Als voorwaarde
1
0
Dan
opdracht
Anders opdracht
Eindals
Selectie
1:
0:
Als
voorwaarde
Dan
opdracht
Anders opdracht
Als
voorwaarde
opdracht
1: Dan
Anders opdracht
Eindals
Eindals
0:
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
SCHRIJF ‘Dit had ik niet verwacht …!’
Eindals
Selectie
Wanneer
1:
voorwaarden
opdrachten
alternatief 1
alternatief 2
.
.
alternatief n
0:
[Anders]
[opdracht]
Eindwanneer
[optioneel]
Componenten van een algoritme
Variabelen en hun Inhoud
Instructies
Sekwenties
(van instructies)
Selecties
(tussen instructies)
Herhalingen (van instructies)
Procedures (functionele verzameling van instructies)
Modules
Documentatie
(= idem, als black box)
Download