Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies)...

13
Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies) Procedures (verzameling van instructies) Modules (= idem, als black box) Documentatie

Transcript of Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies)...

Page 1: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Componenten van een algoritme

Variabelen en hun InhoudInstructies

Sekwenties (van instructies)Selecties (tussen instructies)Herhalingen (van instructies)Procedures (verzameling van instructies)

Modules (= idem, als black box)

Documentatie

Page 2: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Aktie-diagram

Beschrijving

Standaard blok Repeterend blok

Repetitie

beschrijving

Konditioneel blok

Voorwaarde

beschrijving

Alternatieve blokken

Voorwaarde

beschrijving

Voorwaardebeschrijving

Voorwaarde

beschrijving

Globale beschrijving

Genest blok: gedetaillerde uitwerking

Beschrijving

detail 1

Beschrijving

detail 2

Page 3: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Aktie-diagramParasitering door sluipwesp

Initialiseer geduld en aantal eierenZolang er eieren te leggen zijn, doe:

Herhaal zoeken tot prooi gevonden of deduld opSondeer het substraat

Als prooi gevondenControleer geschiktheid

Als prooi OKLeg ei, Poets, Verhoog geduld

Als prooi matig

Leg ei, Poets

Verlaag anders het geduld

Page 4: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules - Input

Hoe kom je er aan ??Initialisatie

Geef startwaarden aan variabelenLengte := 153

LEES OpdrachtLEES ‘Lengte’

Uit een fileLengte := LEES_FILE ‘A:\proef.dta’ EDIT_FILE ‘A:\proef.dta’

Parameter overdrachtInhoud := PRODUKT Lngt,Brdt,Hgt

PROGRAM ‘PRODUKT OUTPUT PARAM’

Page 5: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules - parameters

PROGRAM 'MID'{Bereken gemiddelde van vector}LEES 'A'teller :=1S := 0LA := LENGTE AHerhaal S := S + A[teller]teller := teller + 1Totdat LA KLEINER DAN tellerEindherhaalM := S GEDEELD DOOR LASCHRIJF 'Het gemiddelde van vector A is ' PLAK

M

Page 6: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules - parameters

PROGRAM 'MID OUTPUT PARAM’{Bereken gemiddelde van vector}A := PARAMteller :=1S := 0LA := LENGTE AHerhaal S := S + A[teller]teller := teller + 1Totdat LA KLEINER DAN tellerEindherhaalOUTPUT := S GEDEELD DOOR LA

z := MID 34,45,67,21,102,5,16z = 41.428

MID 34,45,67,21,102,5,1641.428

Page 7: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules

PROGRAM 'MID OUTPUT PARAM{Bereken gemiddelde van vector}A := PARAMteller :=1S := 0LA := LENGTE AAls LA IDENTIEK EMPTYDan OUTPUT := AAnders Herhaal S := S + A[teller] teller := teller + 1 Totdat LA KLEINER DAN teller Eindherhaal OUTPUT := S GEDEELD DOOR LAEindals

Page 8: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

ModulesPROGRAM 'MID OUTPUT PARAM{Bereken gemiddelde van vector}A := PARAMAls IS_CHAR ADan SCHRIJF 'Sorry ...! Input is niet numeriek'Andersteller :=1S := 0LA := LENGTE A Als LA IDENTIEK EMPTY Dan OUTPUT := A Anders Herhaal S := S + A[teller] teller := teller + 1 Totdat LA KLEINER DAN teller Eindherhaal OUTPUT := S GEDEELD DOOR LA EindalsEindals

Page 9: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

ModulesPROGRAM 'MID OUTPUT PARAM{Bereken gemiddelde van vector}A := PARAMOUTPUT := 0Als IS_CHAR ADan SCHRIJF 'Sorry ...! Input is niet numeriek'Andersteller :=1S := 0LA := LENGTE A Als LA IDENTIEK EMPTY Dan OUTPUT := A Anders Herhaal S := S + A[teller] teller := teller + 1 Totdat LA KLEINER DAN teller Eindherhaal OUTPUT := S GEDEELD DOOR LA Eindals

Eindals

Page 10: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

ModulesPROGRAM 'MID OUTPUT PARAM{Bereken gemiddelde van vector}A := PARAMOUTPUT := 0Als IS_CHAR ADan SCHRIJF 'Sorry ...! Input is niet numeriek'Andersteller :=1S := 0LA := LENGTE A Als LA IDENTIEK EMPTY Dan OUTPUT := A Anders

Als 1 < DIMENSIE A Dan SCHRIJF ‘Sorry…! Input is geen vector…’ Anders

Herhaal S := S + A[teller]teller := teller + 1Totdat LA KLEINER DAN tellerEindherhaal

Eindals OUTPUT := S GEDEELD DOOR LA

Eindals

Eindals

Page 11: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

ModulesPROGRAM 'MID OUTPUT PARAM

{Bereken gemiddelde van vector}A := PARAM {stop input parameters in variabele}OUTPUT := 0 {verstekwaarde voor output}Als IS_CHAR A {test of input numeriek is}Dan SCHRIJF 'Sorry ...! Input is niet numeriek’ {foutmelding}Anders {input is numeriek}teller :=1 {initialiseer teller}S := 0 {initialiseer som op startwaarde 0}LA := LENGTE A {bereken lengte van input} Als LA IDENTIEK EMPTY {test of input scalair is} Dan OUTPUT := A {stop input dan gelijk in output} Anders {input is niet leeg} Als 1 < DIMENSIE A {test of input vector is}

Dan SCHRIJF ‘Sorry…! Input is geen vector…’

Anders {input OK… we kunnen beginnen}Herhaal S := S + A[teller]teller := teller + 1Totdat LA KLEINER DAN tellerEindherhaal

Eindals OUTPUT := S GEDEELD DOOR LA EindalsEindals

Page 12: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules

PROGRAM 'MID OUTPUT PARAM{Bereken gemiddelde

van vector}A := PARAM {stop input

parameters in variabele}OUTPUT := 0 {verstekwaarde voor output}Als IS_NUM A {test of input numeriek is}Danteller :=1 {initialiseer teller}S := 0 {initialiseer som op

startwaarde 0}LA := LENGTE A {bereken lengte van input} Als LA IDENTIEK EMPTY {test of input scalair is} Dan OUTPUT := A {stop input dan gelijk in output} Anders {input is niet leeg} Als 1 < DIMENSIE A {test of input vector

is} Dan SCHRIJF ‘Sorry…! Input is geen vector…’ Anders {input OK… we kunnen beginnen}

Herhaal S := S + A[teller]teller := teller + 1Totdat LA KLEINER DAN tellerEindherhaal

Eindals OUTPUT := S GEDEELD DOOR LA EindalsAnders {input is NIET

numeriek}SCHRIJF 'Sorry ...! Input is niet numeriek’ {foutmelding}Eindals

Page 13: Componenten van een algoritme Variabelen en hun Inhoud Instructies Sekwenties (van instructies) Selecties (tussen instructies) Herhalingen (van instructies)

Modules: Voordelen van het gebruik

Passen in 'stapsgewijze verfijning’ als ontwerp model -> hebben een 'top-down' ontwerp tot gevolgModule is een op zichzelf staande component van elk algoritme dat het aanroept. Ontwerp van module en aanroepend algoritme kan apart gedaan worden: -> vereenvoudigd ontwerp- proces Om module in algoritme op te nemen is alleen nodig te weten wat de module doet; niet hoe ie het doet…

Vereenvoudigen naast het ontwerpen van algoritmen ook het begrip. We hoeven alleen het effect van een module te kennen; niet het interne proces Eenmaal goed werkende modules kunnen worden ingevoegd in elk algorime dat hen nodig heeft.Opbouw van bibliotheek van modules.