Mutual Exclusion en Semaforen
|
|
|
- Fien Boer
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Mutual Exclusion en Semaforen Werkcollege Processen Wouter Geraedts 24 mei 2013 Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
2 Outline Hyman s Algoritme Hyman s Algoritme Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
3 Hyman s Algoritme 1 // initially turn =0, blocked [0]= blocked [1]= false 2 void Protocol ( int id) { 3 while ( true ) { 4 blocked [id] = true ; 5 while ( turn!= id) { 6 while ( blocked [1 - id ]) { 7 /* do nothing */ 8 }; 9 turn = id; 10 }; 11 CriticalSection ; 12 blocked [id] = false ; 13 } 14 } Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
4 Hyman s Algoritme Opgave 1 Maak een Uppaal model van Hyman s algoritme en gebruik Uppaal om aan te tonen dat het algoritme niet voldoet aan mutual exclusion. Leg uit wat er fout gaat. Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
5 Imperatieve (pseudo)code UPPAAL If-else 1 pre ; 2 if(c) { 3 s_t ; 4 } else { 5 s_f ; 6 } 7 post ; pre c s_t post!c s_f Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
6 Imperatieve (pseudo)code UPPAAL While 1 pre ; 2 while (c) { 3 s; 4 } 5 post ; s c!c pre post Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
7 Hyman s Algoritme als UPPAAL-model!blocked[1-id] CS turn = id turn == id turn!= id blocked[1-id] blocked[id] = false initial blocked[id] = true Declarations System declarations 1 typedef int [0,1] id_t ; 2 3 bool blocked [ id_t ]; 4 id_t turn ; 1 system Process ; Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
8 Output van UPPAAL Hyman s Algoritme UPPAAL Verifier A[]!(Process(0).CS && Process(1).CS) Tegenvoorbeeld: 1 P1 start, moet wachten want turn!= 0 2 P1 stopt vlak voor turn = id; 3 P0 gaat door naar CS, want turn == 0 4 P1 executeert turn = 1; 5 P1 gaat door naar CS, want turn == 1 Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
9 Hyman s Algoritme 1 // initially turn =0, blocked [0]= blocked [1]= false 2 void Protocol ( int id) { 3 while ( true ) { 4 blocked [id] = true ; 5 while ( turn!= id) { 6 while ( blocked [1 - id ]) { 7 /* do nothing */ 8 }; 9 turn = id; 10 }; 11 CriticalSection ; 12 blocked [id] = false ; 13 } 14 } Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
10 Hyman s Algoritme Opgave 2 Indien processen altijd de kritieke sectie na eindige tijd verlaten, dan zal ieder proces dat bij regel 2 van de code arriveert uiteindelijk in de kritieke sectie komen. Toon aan dat Hyman s algoritme niet aan deze voorwaarde voldoet. Ook wel: wordt starvation uitgesloten? Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
11 Wordt starvation uitgesloten? Nee, hier een voorbeeld-trace: 1 P0 gaat door naar CS 2 P1 moet wachten, zit vast in blocked-loop 3 P0 is klaar, blocked[id] = false; 4 P0 begint opnieuw, blocked[id] = true; 5 P1 krijgt weer de beurt, maar blijft vast zitten in blocked-loop Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
12 Implementatie van semaforen met binaire semaforen 1 void semwait ( semaphore s) { 2 semwaitb ( mutex ); 3 s - -; 4 if(s < 0) { 5 semsignalb ( mutex ); 6 semwaitb ( delay ); 7 } 8 else semsignalb ( mutex ); 9 } 10 void semsignal ( semaphore s) { 11 semwaitb ( mutex ); 12 s ++; 13 if(s <= 0) 14 semsignalb ( delay ); 15 semsignalb ( mutex ); 16 } Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
13 Opdracht 5.16 Hyman s Algoritme There is a flaw in the preceding program. Demonstrate the flaw and propose a change that will fix it. Hints: Two threads call semwait(s), but their execution stops before calling semwaitb(delay). All that you need to do is move a single line of the program. Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
14 Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
15 Fix implementatie van semaforen met binaire semaforen 1 void semwait ( semaphore s) { 2 semwaitb ( mutex ); 3 s - -; 4 if(s < 0) { 5 semsignalb ( mutex ); 6 semwaitb ( delay ); 7 } 8 semsignalb ( mutex ); // else weggehaald 9 } 10 void semsignal ( semaphore s) { 11 semwaitb ( mutex ); 12 s ++; 13 if(s <= 0) 14 semsignalb ( delay ); 15 else semsignalb ( mutex ); // else toegevoegd 16 } Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
16 Een foute oplossing van het Jurassic Park-probleem Grade it for correctness. Ignore syntax and missing variable declarations. 1 resource Jurassic_Park () 2 sem car_avail := 0, car_taken := 0, car_filled := 0, passenger_released := 0 3 process passenger (i := 1 to num_passengers ) 4 do true -> 5 nap (int ( random (1000* wander_time ))) 6 P( car_avail ); V( car_taken ); P( car_filled ) 7 P( passenger_released ) 8 od 9 end passenger 10 process car (j := 1 to num_cars ) 11 do true -> 12 V( car_avail ); P( car_taken ); V( car_filled ) 13 nap (int ( random (1000* ride_time ))) 14 V( passenger_released ) 15 od 16 end car 17 end Jurassic_Park Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
17 Een foute oplossing van het Jurassic Park-probleem Grade it for correctness. Ignore syntax and missing variable declarations. 1 resource Jurassic_Park () 2 sem car_avail := 0, car_taken := 0, car_filled := 0, passenger_released := 0 3 process passenger (i := 1 to num_passengers ) 4 do true -> 5 nap (int ( random (1000* wander_time ))) 6 P( car_avail ); V( car_taken ); P( car_filled ) 7 P(passenger released) 8 od 9 end passenger 10 process car (j := 1 to num_cars ) 11 do true -> 12 V( car_avail ); P( car_taken ); V( car_filled ) 13 nap (int ( random (1000* ride_time ))) 14 V(passenger released) 15 od 16 end car 17 end Jurassic_Park Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
18 Een goede oplossing van het Jurassic Park-probleem 1 resource Jurassic_Park2 () { 2 typedef int [ num_cars ] car_t ; 3 sem embarkation = 1, car_avail = 0, car_taken = 0; 4 sem car_done [ num_cars ]; 5 car_t car_embarkation ; 6 7 process passenger () { 8 car_t car_mine ; 9 while ( true ) { 10 passenger_idle (); // Wandel door de veilige zone 11 P( car_avail ); // Wacht tot er een auto klaar staat 12 car_mine = car_embarkation ; 13 V( car_taken ); // Stap in de auto, doe de deur dicht 14 P( car_done [ car_mine ]); // Stap uit de auto 15 } 16 } 17 process car ( car_t j) { 18 while ( true ) { 19 P( embarkation ); // Claim opstapplaats als voorste auto in rij 20 car_embarkation = j; 21 V( car_avail ); // Open de deuren van de auto 22 P( car_taken ); // Wacht tot iemand in de auto stapt 23 V( embarkation ); // Geef opstapplaats vrij 24 car_work (); // Rijd door de gevaren - zone 25 V( car_done [j]); // Open de deuren van de auto 26 } 27 } 28 } Wouter Geraedts 24 mei 2013 Werkcollege Processen / 18
Semaforen. Semaforen p. 1/2
Semaforen 2008 Semaforen p. 1/2 Vorige Keer mbv mutual exclusion kritieke sectie (cs) 1. software : Dekker s, Peterson s algoritme 2. hardware: uniprocessor machine: disable interrupts 3. hardware: multiprocessor
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Hertentamen 8D040 - Basis beeldverwerking
Hertentamen 8D040 - Basis beeldverwerking 6 augustus 203, 4:00-7:00 Opmerkingen: Maak elke opgave op een apart vel. Antwoord op vraag 4 mag gewoon in het Nederlands. Een gewone rekenmachine is toegestaan.
Programmeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)
Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey
Uitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen
TECHNISCHE UNIVERSITEIT DELFT Faculteit EWI, Afdeling SCT Sectie Parallelle en Gedistribueerde Systemen Ty Delft TI-2720 Operating System Concepten 21 januari 2013, 14.00-17.00 uur. docent: H.J. Sips Dit
Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft
I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Derde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Tentamen Objectgeorienteerd Programmeren
Tentamen Objectgeorienteerd Programmeren 5082IMOP6Y maandag 16 november 2015 13:00 15:00 Schrijf je naam en studentnummer op de regel hieronder. Sla deze pagina niet om tot de surveillant vertelt dat het
Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Jeroen uit. Extra informatie. Voor de lunch. Arduino zo aangesloten om mijn code te laten werken. (versie voor lunch) (code voor de lunch)
We zijn weer aan dag drie al beland vandaag weer een dag CLE aangezien ik zag dat ik het vorige blog was vergeten CLE staat voor Contextiual Learning Enviroment ( weet je dat ook weer ) Maar ja zoals ik
RCL Arduino Workshop 1
RCL Arduino Workshop 1 Leren door doen april 2015 - slides voor RCL Arduino workshop 1 ON4CDU & ON8VQ Workshop Leren door doen Werken in een groep Beperkte tijd Alleen essentiele vragen stellen Thuis oefenen
Derde college algoritmiek. 16/17 februari Toestand-actie-ruimte
Derde college algoritmiek 16/17 februari 2017 Toestand-actie-ruimte 1 Toestand-actie-ruimte Probleem Toestand-actie-ruimte Een toestand-actie-ruimte (toestand-actie-diagram, state transition diagram, toestandsruimte,
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Derde college algoritmiek. 18 februari Toestand-actie-ruimte
Derde college algoritmiek 18 februari 2016 Toestand-actie-ruimte 1 BZboom: zoeken Na het bomenpracticum 60 20 80 10 40 70 100 1 15 30 75 5 25 35 2 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
ALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
ALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Tentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
VOORBLAD SCHRIFTELIJKE TOETSEN
Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG-SC1 : EP11/EP12 TOETSDATUM : 23-01-2014 TIJD : 15.00 16.30 uur AANTAL PAGINA S
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Real-Time Systems (RTSYST)
Real-Time Systems (RTSYST) Week 2 Process/Thread states ready running Wait for I/O or I/O or completion blocked / sleeping Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt
Programmeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Algoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
Vierde college complexiteit. 14 februari Beslissingsbomen
College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then
Programmeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Arduino Workshop 1 Zuid-Limburg
Arduino Workshop 1 Zuid-Limburg Leren door doen Mei 2016 - slides voor Arduino workshop 1 v2.5 Zuid-Limburg PA3CZS, PA0FOT, ON4CDU, PE1EAM 1 Workshop 1 Workshop 1 concentreert op kennismaking en eenvoudige
NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:
NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. Door mee te doen aan deze uitdaging kan je Nspyre laten zien wat je kan. Schrijf jij de beste oplossing dan is deze lego mindstorms nxt 2.0 set voor jou.
Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Tweede college algoritmiek. 12 februari Grafen en bomen
College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Programmeermethoden NA. Week 3: Controlestructuren
Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py
Scripting 2 TUTORIAL EEN APP ONTWIKKELEN VOOR ANDROID MET PROCESSING. ellipse(screenwidth/2, screenheight/2, 140,140); DOOR THIERRY BRANDERHORST
Scripting 2 ellipse(screenwidth/2, screenheight/2, 140,140); TUTORIAL EEN APP ONTWIKKELEN VOOR ANDROID MET PROCESSING. DOOR THIERRY BRANDERHORST ANDROID APPLICATIES Tegenwoordig zijn er duizenden applicaties
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
Constraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction
Constraint satisfaction Computationele Intelligentie Constraint Satisfaction Een constraint satisfaction probleem (CSP) bestaat uit: een verzameling variabelen; een domein van waarden voor elke variabele;
Syntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen
Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen dat er zowel typografische als inhoudelijke onvolkomenheden
Datastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)
Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek examen: er mag geen gebruik worden gemaakt van het studieboek.
The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:
Document properties Most word processors show some properties of the text in a document, such as the number of words or the number of letters in that document. Write a program that can determine some of
Programmeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
Voorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
Zevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is
PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt
[13] Rondjes draaien (loops)
[13] Rondjes draaien (loops) Met de if else uit de leerfiche [11] hebben we leren werken met één van de belangrijkste programmeerstructuren in Python. Bijna even belangrijk zijn de verschillende mogelijkheden
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
ALGORITMIEK: answers exercise class 7
Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord
VAN LEREN NAAR PRESTEREN
VAN LEREN NAAR PRESTEREN DE WEG NAAR WERKPLEKGEORIENTEERDE E-LEARNING JANINE VAN ZOEST NEW MORE APPLY SOLVE CHANGE Apply Synergies 10% FORMEEL LEREN 70% WERKPLEK LEREN 20% SOCIAAL LEREN (mentoring & coaching)
Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam
Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino
Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?
Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering
Doorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur
Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een
{ auteur, toelichting }
Programmeren Blok A Trilogie van (programmeer)talen http://www.win.tue.nl/ wstomv/edu/ip0/ College Syntaxis (vormleer): Hoe ziet t eruit, hoe schrijf je t? Tom Verhoeff Technische Universiteit Eindhoven
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek
Bij manueel trein elke keer vanaf spoor 1 te starten, dus altijd twee ritten. StartLED gaat aan en pas uit als trein op 1 arriveert.
/* Pendelbaanbesturing www.ab-treinen.nl Bij if functie niet = maar == gebruiken, bij = wordt de waarde geschreven, == is gelijk aan. Digitale ingangen 0 en 1 niet gebruikt in verband met gebruik van seriele
Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/
Programmeermethoden Pointers Walter Kosters week 10: 13 17 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Introductie Een pointer is in feite gewoon een geheugenadres. Het geheugen kun
Tiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Negende college algoritmiek. 15 april Dynamisch Programmeren
Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen
Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Herkansingstentamen Algoritmiek voor Biologen
Opgave 1. (4 punten) Elk jaar verliest een boom al z'n bladeren. Een boom begint op dag D met B bladeren. Op de eerste dag is voor elk blad dat aan de boom zit de kans op afvallen 0.03. Voor elke volgende
Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Tentamen Algoritmiek voor Biologen
Opgave 1. (4 punten) Elk jaar verliest een boom al z'n bladeren. Een boom begint op dag D met B bladeren. Op de eerste dag is voor elk blad dat aan de boom zit de kans op afvallen 0.03. Voor elke volgende
Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:
Programmeren PYTHON OEFENTENTAMEN 2 Naam: Studentnummer: Schrijf jouw antwoorden op dit tentamen Tijd: 2 uur Maximaal aantal punten: 32 Menselijke interpreter (6 punten) 0. (1 punt) Wat is de uitkomst
Informatica: C# WPO 2
Informatica: C# WPO 2 1. Inhoud If, globale variabelen, debuggen, randomgetallen, strings vergelijken 2. Oefeningen Demo 1: Deelbaar door 0 Demo 2: Kassa Demo 3: Debug oplossingen demo s 1 en 2 A: Verschillend
Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra
Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten
Thinking of Development
Thinking of Development College 2 Imperatief programmeren Arjan Scherpenisse [email protected] @acscherp Dit college Programmeren, wat is dat dan? De programmeur als vormgever Pseudocode Scratch
Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument
Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen
Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27
Programmeren 0. (1 punt.) Stel, een "afhankelijk kind" is een persoon is die jonger is dan 18 jaar, en hooguit 8.000 euro verdient. Welke van de onderstaande expressies definieert een afhankelijk kind?
De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC
Verslag les -5-2-4-19 Werkende lussen: for-loop; while-loop; do while- loop. Wanneer iets twee of meerdere keren gedaan moet worden, dan gebruiken we een subroutine, loop, functie. (verschillende woorden
Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS
Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen
Tentamen Kunstmatige Intelligentie (INFOB2KI)
Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald
Algoritmen en programmeren: deel 2 - basis
Algoritmen en programmeren: deel 2 - basis Ruud van Damme Creation date: 25 april 2005 Update: 16 november 2006, 9 september 2007 Overzicht 1 Basisbenodigdheden voor alle problemen 2 Alles in stukjes op
Logica voor Informatica
Logica voor Informatica 13 Programma verificatie Wouter Swierstra University of Utrecht 1 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment
