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