Componenten van een Algoritme

Slides:



Advertisements
Verwante presentaties
Inleiding in de statistiek voor de gedragswetenschappen Met ondersteuning van SPSS Guido Valkeneers.
Advertisements

PSD Basisstructuren programmeren.
PSD Basisstructuren programmeren.
INTERACTION DESIGN Week 3.
ECHT DOELTREFFEND ! MUGGEN BESTRIJDEN
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)
Programmeren met Alice
Staafdiagram Strookdiagram
Goedemorgen.
Goethals Frederik Vakdidactiek 17 – Goethals Frederik
Hardware (1) NSG Informatica.
Een manier om problemen aan te pakken
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)
Maak zonder weerstand je proefwerk natuurkunde!
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
VBA en VBS Een introductie.
3.1 Zwaartekracht, massa en gewicht
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
De processor.
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Tekenen van een draaiende molen in LOGO
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
2.6 Welke stoffen lossen op in water?
Frank Stalpers en Ad Baars
Inleidend probleem Data structuur (hiërarchie van classes)
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Optellen en aftrekken tot 100 TE + E = TE mb
Verhoudingstabel Er is een voorraad laxeermiddel. Die oplossing bevat 15% natriumsulfaat. Dit betekent: 15 gram per 100 mL oplossing. Kinderen krijgen.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Hoofdstuk 4 Vlakke figuren.
2 vmbo basis 4.1Vlakke figuren
Hoofdstuk 4 Vlakke figuren.
Klik ergens op het witte deel van deze pagina om verder te gaan
MICROCONTROLLERS.
Samenwerking tussen processor, registers en RAMgeheugen
GELIJKNAMIGE BREUKEN les 31.
Programma Structuur Diagrammen (PSD’s)
Verbanden JTC’07.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Inleiding in de statistiek voor de gedragswetenschappen
CONTROLESTRUCTUREN (DEEL 1)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Functioneel programmeren Een snelle herhaling…. Functie-definitie static int kwad (int x) { return x*x ; } kwad x = x * x Haskell kwad :: Int  Int.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Beslissingen. Inhoud: Booleaanse expressies: wat? Booleaanse expressies: wat? Relationele en logische operatoren Relationele en logische operatoren De.
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Formules, vergelijkingen en mol (en)
Welkom! maandag 16 November 2015 Les B-2.
IF() ELSE() LES 4: VOORWAARDEN. BOOL Een variabele die slechts 2 mogelijke waarden kan hebben: true(waar) of false(niet waar) duid je aan met bool bool.
Javascript. Vandaag Samenvatting vorige les PSD's Random Array's Herhalingen – For-loop – While-loop.
Gameprogrammeren: Keuzeopdrachten
Gameprogrammeren: Expressies
Module 4 – Hoofdstuk 2 PSD’s maken.
Programmeren woensdag 4 oktober 2017.
Een instructie schrijven
Instructieve teksten Hoe herken ik de opbouw van een instructie en hoe weet ik hoe ik een instructie moet gebruiken? NU Nederlands 2F.
Small Basic Console deel 2
Kan je zelf een geschikte schaalverdeling maken
Onderzoek Basisstof 6.
Kan je zelf een geschikte schaalverdeling maken
Modderdorp UNPLUGGED Bron: csunplugged.org.
SQL Les February 2019.
Software Development fundamentals
Python – For loop + strings
Transcript van de presentatie:

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 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. 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 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. 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.

Variabelen Containers voor waarden, getallen, hoeveelheden, tekst, etc… Geheugenplaatsen Deze pot kan bevatten… 10 koekjes 50 gram suiker 3 stukjes cake etc. Inhoud Variabele

Variabelen - Inhoud Toekenning Naam := waarde Naam := naam A := 2 (populaties) breedte := 34 (milimeters) B := breedte naam := ‘een tekst’ ‘B’ WORDT 34 ‘groet’ WORDT ‘Goede morgen samen …’

Variabelen - Inhoud Beperkingen… … m.b.t. een bepaald type inhoud: 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… Hak fijn...

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 Kook water Doe koffie in kopje 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 Kook water Vul de ketel Zet ketel op fornuis Wacht tot het water kookt Haal de ketel van het fornuis Doe poeder-koffie in kopje 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

1/2 quantity Shotcrust Pastry 185 g unsalted butter 100 g castor sugar 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 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. Instructies worden gegeven in de volgorde waarin ze worden uitgevoerd (“executed”) From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

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

Logica <--> Selectie Structuren in de taal Logica <--> Selectie Variabelen van type boolean: TRUE (1) en FALSE (0) Vergelijkingen: 2 = 2 TRUE 4 = 3 + 1 TRUE 3 > 4 FALSE Modules: EN (2=2) EN (4=3+1) <-> TRUE OF (2=2) OF (3>4) <-> TRUE XOF NIET

Selectie Als voorwaarde Dan opdracht Eindals … voorwaarde … opdracht Als … Dan … Eindals … voorwaarde … opdracht voorwaarde: Ja /Nee <-> TRUE /FALSE <-> 0 / 1 Als voorwaarde 1 Dan opdracht Eindals

Als … Dan … Anders … Eindals Selectie Als … Dan … Anders … Eindals … voorwaarde … opdracht Als voorwaarde 1 Dan opdracht Anders opdracht Eindals

Selectie Als voorwaarde Dan opdracht Anders opdracht Eindals 1: 0: 1:

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

SCHRIJF ‘Dit had ik niet verwacht …!’ Selectie Als voorwaarde Dan opdracht Anders SCHRIJF ‘Dit had ik niet verwacht …!’ Eindals

Selectie Wanneer [Anders] [optioneel] Eindwanneer voorwaarden opdrachten alternatief 1 alternatief 2 . alternatief n [Anders] [optioneel] [opdracht] Eindwanneer 1: 0:

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