Basiscursus Informatica, 98-99 College 4, H 4 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 4, Algoritmes Brookshear H4 Richard Benjamins.

Slides:



Advertisements
Verwante presentaties
BRIDGE Vervolgcursus Vervolg op starterscursus Bridgeclub Schiedam ‘59 info: Maandagavond: 19: – of
Advertisements

28 juni 2009 Paëllanamiddag 1 Paëllanamiddag 28 juni 2009 Voorbereiding vrijdagavond (Loopt automatisch - 7 seconden)
Programmeren met Alice
Basiscursus Informatica SWI Theoriegedeelte Overzicht en H0 Richard Benjamins.
Hoofdstuk 8: Recursie.
Ronde (Sport & Spel) Quiz Night !
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
VBA en VBS Een introductie.
Tel de zwarte stippen!. Tel de zwarte stippen!
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Stijn Van Wonterghem1 ALICE Een animatie opbouwen.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Optuigen van datastructuren
Tips (beoordelingscriteria finale versie ) Diederik, “Three Sins”: Diederik, “Three Sins”: In introductie er niet veel omheen draaien In introductie er.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Geometrie en topologie Rob Kromwijk, 26 juli 2012.
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
Inleiding Informatica, College 6, H 6 – sheet nr. 117 October :27 Basiscursus Informatica 98/991 Inleiding Informatica College 7, Brookshear.
Inleiding Informatica, College 4, H 4 – sheet nr. 117 October :17 Basiscursus Informatica 98/991 Inleiding Informatica College 5 Brookshear.
Basiscursus Informatica, College 8, H 8 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 8, File Structures Brookshear H8 Richard.
Basiscursus Informatica, College 5, H 5 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 5, Programming Languages Brookshear H5 Richard.
Basiscursus Informatica, College 6, H 6 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 6, Software Engineering Brookshear H6 Bob.
Datastructuren Sorteren, zoeken en tijdsanalyse
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Shortest path with negative arc-costs allowed. Dijkstra?
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Oefeningen Workshop RIE Gemeenten
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
Tel de zwarte stippen. Tel de zwarte stippen Lopen de horizontale lijnen evenwijdig of niet?
Deltion College Engels B1 Lezen [no. 001] can-do : 2 products compared.
Deltion College Engels B1 Gesprekken voeren [Edu/006] thema: Look, it says ‘No smoking’… can-do : kan minder routinematige zaken regelen © Anne Beeker.
Deltion College Engels C1 Spreken/Presentaties [Edu/004] thema ‘Today I will talk to you about… ‘ can-do : kan duidelijke, gedetailleerde beschrijving.
CONTROLESTRUCTUREN (DEEL 1)
Deltion College Engels B2 Spreken/presentaties/subvaardigheid lezen [Edu/002] thema: how stuff works can-do : kan de werking van een produkt uitleggen.
Hoofdstuk 3 - Conditionele logica
Nothing Is As It Seems Introduction Lesson. What are we going to do? - We gaan deze periode spreek, luister, lees en schrijflessen in een thema oefenen.
1 XSLT processing & control Datamodellering 2006.
Deltion College Engels B1 En Spreken/Presentaties [Edu/006] Thema: “The radio station“ can-do : kan een publiek toespreken, kan verzonnen gebeurtenissen.
Deltion College Engels C1 Schrijven [Edu/007] thema: Mind twister or how to write an essay… can-do : kan heldere, goed gestructureerde uiteenzetting schrijven.
Nothing Is As It Seems Lesson 7 What’s the Story?.
Deltion College Engels B2 Lezen [Edu/003] thema: Topical News Lessons: The Onestop Magazine can-do: kan artikelen en rapporten begrijpen die gaan over.
Deltion College Engels B2 Spreken [Edu/001] thema: What’s in the news? can-do : kan verslag doen van een gebeurtenis en daarbij meningen met argumenten.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
Deltion College Engels B2 Lezen[Edu/001] /subvaardigheid schrijven korte samenvattingen thema: Exotic news can-do : lezen om informatie op te doen - kan.
Deltion College Engels B2 Schrijven [Edu/005] thema: Writing a hand-out can-do: kan een begrijpelijke samenvatting schrijven © Anne Beeker Alle rechten.
Deltion College Engels B1 En Spreken/Presentaties [Edu/003]/ Subvaardigheid lezen Thema: Once upon a time… can-do : kan een verhaal(tje) vertellen © Anne.
Deltion College Engels B1 Lezen [Edu/002] thema: But I ‘ve read it in… can-do : kan hoofdthema en belangrijkste argumenten begrijpen van eenvoudige teksten.
Deltion College Engels B2 Gesprekken voeren [Edu/007] thema: ‘With this mobile you can…’ can-do : kan op betrouwbare wijze gedetailleerde informatie doorgeven.
Deltion College Engels B2 (telefoon)gesprekken voeren[Edu/002] /subvaardigheid lezen/schrijven thema: I am so sorry for you… can-do : kan medeleven betuigen.
GegevensAnalyse Les 2: Bouwstenen en bouwen. CUSTOMER: The Entity Class and Two Entity Instances.
Welkom! maandag 16 November 2015 Les B-2.
Key Process Indicator Sonja de Bruin
Dictionary Skills!?.
De taaltaak
Today: Chapter 2 Discuss SO 2 What to study for your test?
Modderdorp UNPLUGGED Bron: csunplugged.org.
Tel de zwarte stippen!. Tel de zwarte stippen!
Modderdorp UNPLUGGED Bron: csunplugged.org.
English 23 April 2018.
Tel de zwarte stippen!. Tel de zwarte stippen!
Software Development fundamentals
Transcript van de presentatie:

Basiscursus Informatica, College 4, H 4 1 Basiscursus Informatica 98/991 Basiscursus Informatica College 4, Algoritmes Brookshear H4 Richard Benjamins

Basiscursus Informatica, College 4, H 4 2 Basiscursus Informatica 98/992 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 3 Basiscursus Informatica 98/993 Algoritme n Informeel ä Verzameling stappen die definieert hoe een taak wordt uitgevoerd n Formeel ä Verzameling geordende, niet-ambigue, uitvoerbare stappen, die een eindig proces definieren ä Is onderstaande een programma? - maak een lijst van alle positieve integers - zet lijst in afnemende volgorde (hoog naar laag) - neem eerste integer van lijst

Basiscursus Informatica, College 4, H 4 4 Basiscursus Informatica 98/994 Termen n Programma, algoritme, proces n Programma is de representatie van algoritme n Process is de executie van een programma

Basiscursus Informatica, College 4, H 4 5 Basiscursus Informatica 98/995 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 6 Basiscursus Informatica 98/996 Natuurlijke taal n Probleem van natuurlijke taal ä ambiguiteit ä mate van detail is niet uniform n Visiting grandchildren can be nerve-racking n Ik zag een grote hond en kat

Basiscursus Informatica, College 4, H 4 7 Basiscursus Informatica 98/997 Programmeertaal n Goed gedefinieerde bouwstenen: primitieven ä syntax (symbool) ä semantiek (wat het betekent) ä formele regels hoe primitieven te combineren n Op het nivo van machine-instructies? n Abstract hulpmiddel ä onafhankelijk van specifieke computer ä denken op hoger nivo (minder detail)

Basiscursus Informatica, College 4, H 4 8 Basiscursus Informatica 98/998 Pseudocode n Notatie om tijdens programma-ontwikkeling ideeen uit te drukken op een hoger nivo dan programmeertaal n Terugkerende patronen in primitieven vatten ä If/Then/Else en If/Then ä While/Do ä Assign

Basiscursus Informatica, College 4, H 4 9 Basiscursus Informatica 98/999 If/Then/Else n Neem je jas mee als het regent, en anders je zonnebril: If (conditie) dan (actie) ä If (regent) Then (jas mee) Else (zonnebril mee) n Afhankelijk of het een schrikkeljaar is, deel het totaal door 366 of 365, respectievelijk ä If (schrikkeljaar) Then (deel totaal door 366) Else (deel totaal door 365) n Als ik geld heb, ga ik op reis ä If (geld) Then (ik op reis)

Basiscursus Informatica, College 4, H 4 10 Basiscursus Informatica 98/9910 While/Do n Zolang er nog kaartjes zijn, ga door met de verkoop: While (conditie) Do (actie) ä While (er zijn kaartjes) Do (verkoop) Assignment n Assign name the value expression ä assign Prijs the value Kosten + Winstmarge

Basiscursus Informatica, College 4, H 4 11 Basiscursus Informatica 98/9911 Inspringen n If (item is belastbaar) Then [( If (prijs > limiet) Then (betaal x) Else (betaal y)] Else (betaal z)

Basiscursus Informatica, College 4, H 4 12 Basiscursus Informatica 98/9912 Procedures n Aanroepen van programma’s binnen een programma: ä subprogramma, module, functie, procedure n Procedure naam (argumentenlijst) n Procedure groet (Persoon) assign Teller the value 3; while Teller > 0 do (print bericht “hallo Persoon” en assign Teller the value Teller - 1)

Basiscursus Informatica, College 4, H 4 13 Basiscursus Informatica 98/9913 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 14 Basiscursus Informatica 98/9914 Programmaontwikkeling n Tot nu toe: ä representatie van algoritme in programma n Waar komt algoritme vandaan? n Theory van probleemoplossen n Creatief proces ä soms “weet” je de oplossing opeens als je al niet meer met probleem bezig bent

Basiscursus Informatica, College 4, H 4 15 Basiscursus Informatica 98/9915 Waar beginnen? n Achterwaarts werken vanuit de gevraagde output n Gebruik eerdere oplossingen voor gelijkende problemen n Probeer een paar specifieke voorbeelden, en generaliseer n “Stepwise refinement”: deel probleem op in sub-problemen

Basiscursus Informatica, College 4, H 4 16 Basiscursus Informatica 98/9916 Pas op! n Stepwise refinement kan soms het probleem vermoeilijken n As you step from a pier into a boat, your hat falls into the water, unbeknownst to you. The river is flowing at 2.5 mph so your hat begins to float downstream. In the meantime, you begin traveling upstream at about the speed of 4.75 mph relative to the water. After 10 minutes you realize that your hat is missing,turn the boat around, and begin to chase your hat down the river. How long will it take to catch up with you hat?

Basiscursus Informatica, College 4, H 4 17 Basiscursus Informatica 98/9917 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 18 Basiscursus Informatica 98/9918 Loops n Herhaaldelijk uitvoeren van een verzameling instructies ä initialisatie ä test voor terminatie ä modificatie (in richting terminatieconditie) n While (beker niet vol) Do (voeg iets toe) n Soorten: ä While/Do ä Repeat/Until (Do/While, in Java)

Basiscursus Informatica, College 4, H 4 19 Basiscursus Informatica 98/9919 De “While” loop conditie waar conditie onwaar test conditie actie n Data flow diagram n Semantiek van de loop ä actie wordt 0 of meer keren uitgevoerd n while (munt in zak) do (haal ‘m eruit)

Basiscursus Informatica, College 4, H 4 20 Basiscursus Informatica 98/9920 De “Repeat” loop conditie waar conditie onwaar test conditie actie n Semantiek van de loop ä actie wordt 1 of meer keren uitgevoerd n repeat (haal munt uit zak) until (geen munt in zak) n Actie moet tenminste 1x uitgevoerd kunnen worden

Basiscursus Informatica, College 4, H 4 21 Basiscursus Informatica 98/9921 Sequential Search algoritme procedure Search (List, TargetValue) if (List empty) then (Declare search a failure) else [Select the first entry in list as the test entry; while (TargetValue > test entry and there remain entries to be considered) do(Select the next entry in list as the test entry); if (TargetValue = test entry) then (Declare search of success) else (Declare search a failure) ]

Basiscursus Informatica, College 4, H 4 22 Basiscursus Informatica 98/9922 Insertion Sort algoritme procedure Sort (List) if (that are two or more entries in List) then [Shade the portion of List from the 2nd entry through the last entry; repeat (Remove the shading from the first name in the shaded portion of List and identify this name as to the pivot entry; Move the pivot entry to a temporary location leaving a hole in List; while (there is a name above the hole and that name is greater than the pivot) do (Move the name above the hole down into the hole leaving the hole above the name) Move the pivot entry into the hole in List) until (entire List is unshaded)] Figuur 4.11

Basiscursus Informatica, College 4, H 4 23 Basiscursus Informatica 98/9923 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 24 Basiscursus Informatica 98/9924 Recursie n Alternatief voor loops ä cyclisch herhalen van set instructies n Recursie ä herhaling van zelfde programma op simpelere input

Basiscursus Informatica, College 4, H 4 25 Basiscursus Informatica 98/9925 Binary Search Fig Procedure Search (List, TargetValue) if (List empty) then (Declare the search a failure) else [select the "middle" entry in List as the test entry; Execute one of the following blocks of instructions depending on whether TargetValue is equal to, less than, or greater than the test entry TargetValue = test entry; (Declare the search a success) TargetValue < test entry; [Apply the procedure Search to see whether TargetValue is in the portion of List preceding the test entry, and if (that search is successful) then (Declare this search a success) else (Declare this search a failure)] TargetValue > test entry; [Apply the procedure Search to see whether TargetValue is in the portion of List following the test entry, and if (that search is successful) then (Declare this search a success) else (Declare this search a failure)]

Basiscursus Informatica, College 4, H 4 26 Basiscursus Informatica 98/9926 Recursie n Heeft ook ä initialisatie, test voor terminatie, modificatie n Test voor terminatie (base case) Als slaagt, dan huidige activatie van programma is klaar, en Terug naar vorige activatie Anders start nieuwe activatie met simpelere input n Initialisatie=begin input n modificatie=simpelere input ä bv. splits in tweeen, haal 1 element weg

Basiscursus Informatica, College 4, H 4 27 Basiscursus Informatica 98/9927 Quick Sort (recursief) n Kies een naam -->pivot Zoek juiste plaats in lijst voor pivot Stop pivot op die plaats in lijst n Hoe kom je aan juiste plaats? ä Splits lijst in twee sub-lijsten Eerste lijst komt voor pivot (alphabetisch) Tweede lijst komt na pivot Juiste plaats pivot is tussen twee sub-lijsten in n Sorteer beide sub-lijsten

Basiscursus Informatica, College 4, H 4 28 Basiscursus Informatica 98/9928 Quick Sort Procedure Sort (list) if (List contains fewer than two entries) then (Declare List to be sorted) else [Select the first entry in List as the pivot; Place pointers at the first and last entries of List; while (the pointers do not coincide) do (Move the bottom pointer up to the nearest entry less than or equal to the pivot but not beyond the top pointer; Move the top pointer down to the nearest entry greater than the pivot but not beyond the bottom pointer; if (the pointers do not coincide) then (Interchange the entries indicated by the pointers)) Interchange the pivot with the entry indicated by the common pointers; Apply the procedure Sort to the portion of List above the pivot Apply the procedure Sort to the portion of List below the pivot]

Basiscursus Informatica, College 4, H 4 29 Basiscursus Informatica 98/9929 Quick Sort Jane Bob Alice Tom Carol Bill George Cheryl Sue John Jane (pivot entry) Bob Alice Tom Carol Bill George Cheryl Sue John Jane (pivot entry) Bob Alice Tom Carol Bill George Cheryl Sue John > pivot

Basiscursus Informatica, College 4, H 4 30 Basiscursus Informatica 98/9930 Quick Sort Jane (pivot entry) Bob Alice Tom Carol Bill George Cheryl Sue John > pivot =< pivot Jane (pivot entry) Bob Alice Cheryl Carol Bill George Tom Sue John > pivot =< pivot

Basiscursus Informatica, College 4, H 4 31 Basiscursus Informatica 98/9931 Quick Sort Jane (pivot entry) Bob Alice Cheryl Carol Bill George Tom Sue John > pivot =< pivot George Bob Alice Cheryl Carol Bill Jane (pivot entry) Tom Sue John > pivot =< pivot

Basiscursus Informatica, College 4, H 4 32 Basiscursus Informatica 98/9932 Overzicht college 4 n Notie van algoritme n Representatie van algoritmes n “Ontdekking” van algoritmes n Iteratieve structuren n Recursieve structuren n Efficientie en correctie

Basiscursus Informatica, College 4, H 4 33 Basiscursus Informatica 98/9933 Efficientie n Sommige algoritmes zijn significant sneller of trager dan andere: ä sequential search ä binary search n Lijst met elementen, zoek element ä sequential: gemiddeld vergelijkingen ä binary: 15 vergelijkingen – 2 log 30000: 2 x = 30000

Basiscursus Informatica, College 4, H 4 34 Basiscursus Informatica 98/9934 Correctheid n Intuitief correct versus formeel correct A traveler with a gold chain of seven links must stay in an isolated hotel for seven nights. The rent each night consists of one link from the chain. What is the fewest number of links that must be cut so that the traveler can pay the hotel one link of the chain each morning without paying for lodging in advance? Fig 4.21, 4.22

Basiscursus Informatica, College 4, H 4 35 Basiscursus Informatica 98/9935 Oplossing On the first morning, give the hotel the single link. On the second morning, retrieve the single link and give the hotel the two-link piece. On the third morning, give the hotel the single link. On the fourth morning, retrieve the three links held by the hotel and give the hotel the four-link piece. On the fifth morning, give the hotel the single link. On the sixth morning, retrieve the single link and give the hotel the double-link piece. On the seventh morning, give the hotel the single link.

Basiscursus Informatica, College 4, H 4 36 Basiscursus Informatica 98/9936 Formele verificatie n We nemen precondities aan n Propageer gevolgen door het programma ä if (conditie) then (instructie 1) else (instructie 2) ä als voor uitvoering if/then een bewering waar is, dan is direct voor uitvoering van instructie 1 deze bewering waar + de conditie waar. In geval instructie 2 uitgevoerd moet worden is vlak daarvoor de bewering waar en de ontkenning van de conditie

Basiscursus Informatica, College 4, H 4 37 Basiscursus Informatica 98/9937 Beweringen in loop test conditie initialiseerbodyverander Precondities Loop invariant Loop invariant en terminatie conditie Vind beweringen om te checken en te propageren door het programma

Basiscursus Informatica, College 4, H 4 38 Basiscursus Informatica 98/9938 Insertion Sort algoritme procedure Sort (List) if (that are two or more entries in List) then [Shade the portion of List from the 2nd entry through the last entry; repeat (Remove the shading from the first name in the shaded portion of List and identify this name as the pivot entry; Move the pivot entry to a temporary location leaving a hole in List; while (there is a name above the hole and that name is greater than the pivot) do (Move the name above the hole down into the hole leaving the hole above the name) Move the pivot entry into the hole in List) until (entire List is unshaded)] Figuur 4.11

Basiscursus Informatica, College 4, H 4 39 Basiscursus Informatica 98/9939 Beweringen n Loop invariant: ä each time the loop body is completed, the names in the unshaded portion of the list are sorted n Termination condition: ä the entire list is unshaded n Eindig proces: ä steeds een naam ontschaduwen leidt uiteindelijk tot unshaded list

Basiscursus Informatica, College 4, H 4 40 Basiscursus Informatica 98/9940 Quick sort beweringen n 1. Namen boven de toppointer zijn kleiner of gelijk aan de pivot, en namen beneden de bottompointer zin groter dan de pivot n 2. Aan begin van sorteerproces en na elke wisseling, wijst de toppointer naar een naam minder of gelijk aan de pivot n 3. Als de pointers samenvallen, is de betreffende entry gelijk of kleiner dan de pivot

Basiscursus Informatica, College 4, H 4 41 Basiscursus Informatica 98/9941 Verificatie versus testen n Verificatie is formeel, rigoreus, maar duur n Testen is goedkoper, maar garandeert geen correcte software ä populairder in industriele wereld dan verificatie n Critische applicaties!