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

Post on 12-May-2015

213 views 0 download

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