Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/
|
|
|
- Johannes Vink
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Programmeermethoden Pointers Walter Kosters week 10: november kosterswa/pm/ 1
2 Pointers Introductie Een pointer is in feite gewoon een geheugenadres. Het geheugen kun je je voorstellen als een lineaire lijst met bytes. Als p een pointer is naar een geheel getal i (gedefinieerd via int * p = &i;), is p het adres van i, en is i ook als *p te benaderen: i = 196; komt nu op hetzelfde neer als *p = 196;. Met behulp van pointers kun je het geheugen dynamisch beheren, dat wil zeggen tijdens het runnen van het programma. 2
3 Pointers Bibliotheek Stel je wilt jaargangen Donald Duck opbergen in een bibliotheek, in verschillende kasten, en maar één cataloguskaartje gebruiken. Oplossing: plak de plek van de eerstvolgende jaargang achterin de vorige. Dus achterin 2007 zit een sticker met jaargang 2008 staat op plek..., achterin 2016 staat dit is de laatste. En de eerste is
4 Pointers Voorbeeld 1 int * p; int * q; twee pointers naar int(eger) p? q? p = new int; maak nieuwe int en stop diens adres in p p q?? 4
5 Pointers Voorbeeld 2 p q?? *p = 42; stop 42 in die int p q? 42 q = p; laat q diezelfde int aanwijzen p q 42 5
6 Pointers Voorbeeld 3 p q 42 *q = 37; verander de int via q p q 37 p = NULL; laat p naar niets wijzen p NULL q 37 6
7 Pointers Voorbeeld 4 p NULL q 37 p = q; zet p weer terug p q 37 delete q; blaas (via q) de int op p? q? 37 7
8 Pointers Implementatie Bij het deleten wordt de geheugenruimte weer vrijgegeven. Bij delete q; wordt niet q vrijgegeven, maar datgene waar q naar wijst! Voorlopig bevat *q nog wel de oude waarde (37) maar op enig moment niet meer... Goed: delete q; q = NULL;, want nu weet je zeker dat q naar niets wijst. NULL is trouwens gewoon 0. Sinds 2011 moet je in plaats van NULL eigenlijk nullptr gebruiken: g++ -std=c++11 -Wall... Als je een pointer afloopt ( dereferencen ) moet je zeker weten dat hij niet NULL is! 8
9 Pointers Fout Fout is zoiets als q = new int; q = p; Je maakt nu namelijk eerst een nieuwe int, laat q daarnaar wijzen, en verandert q dan. Het adres van die eerste int is nu voor altijd zoek, en die int verspilt ruimte! Slecht is: p = NULL; delete p; Een NULL-pointer kun je niet deleten als je het toch doet, gebeurt er niks. 9
10 Pointers Notaties int i; // een integer int* p; // een pointer naar een integer p = &i; // p wijst i aan: p is nu het adres van i i = 12; // verandert i *p = *p + 8; // oftewel *p += 8;, verandert i opnieuw int *q = &i; // q wijst ook i aan; geen new s, // en zeker geen delete s! Let op: int* p, q; betekent dat p een pointer naar een integer is, en q een integer; bij int* p; int* q; en ook bij int *p, *q; heb je twee pointers naar een integer. En wat betekent *p++? Is dat (*p)++ of *(p++)? 10
11 Pointers Met klassen En met klassen erbij: class wagon { public: int hoogte;... };//wagon wagon *p; // p is pointer naar (= adres van) een wagon Nu kun je de hoogte van de door p aangewezen wagon *p (de member-variabele hoogte) benaderen via (*p).hoogte, maar ook via (nieuwe notatie) p->hoogte. 11
12 Pointers Enkelverbonden pointerlijst 1 We maken nu een enkelverbonden pointerlijst bestaande uit vakjes: class vakje { public: char info; vakje* volgende; };//vakje Vaak wordt hiervoor in plaats van class het iets eenvoudigere struct gebruikt. info volgende Zo n vakje ziet er uit als: x 12
13 Pointers Enkelverbonden pointerlijst 2 We willen bijvoorbeeld maken: ingang p a s Doel: opslaan van serie karakters, waar we de lengte van te voren niet van weten. c Lijstje afdrukken: vakje* hulp = ingang; while ( hulp!= NULL ) { cout << hulp->info << endl; hulp = hulp->volgende; }//while a l NULL 13
14 Pointers Enkelverbonden pointerlijst 3 Hoe bouwen we zo n lijst vanaf niets op? vakje* ingang; ingang = new vakje; ingang->info = l ; ingang->volgende = NULL; Dit levert op: ingang l NULL 14
15 Pointers Enkelverbonden pointerlijst 4 Hoe duwen we er nog een vakje voor? vakje* p; p = new vakje; p->info = c ; p->volgende = ingang; ingang = p; Dit levert op: ingang p c l NULL Let op: nu niet delete p; zeggen! 15
16 Pointers Enkelverbonden pointerlijst 5 Hoe stoppen we er een vakje tussen? vakje* p; p = new vakje; p->info = a ; p->volgende = ingang->volgende; ingang->volgende = p; Dit levert op: ingang p c a l NULL Etcetera... 16
17 Pointers Enkelverbonden pointerlijst 6 Maar het kan uiteraard beter met een functie: class vakje { public: char info; vakje* volgende; };//vakje void zetervoor (char letter, vakje* & ingang) { vakje* p; // let op de & p = new vakje; p->info = letter; p->volgende = ingang; ingang = p; // en nu NIET delete p;! }//zetervoor ingang = NULL; // met vakje* ingang; zetervoor ( l,ingang); zetervoor ( a,ingang); zetervoor ( c,ingang); zetervoor ( s,ingang); zetervoor ( a,ingang); zetervoor ( p,ingang); 17
18 Pointers Enkelverbonden pointerlijst 7 s Avonds lijst bewaren (zonder pointers): vakje* hulp; while ( ingang!= NULL ) { uitvoer.put (ingang->info); hulp = ingang; ingang = ingang->volgende; delete hulp; }//while s Ochtends lijst weer opbouwen (met pointers): ingang = NULL; char letter = invoer.get ( ); while (! invoer.eof ( ) ) { zetervoor (letter,ingang); letter = invoer.get ( ); }//while Helaas... verkeerd om: nog eens wegschrijven en weer opbouwen, of zeterachter schrijven (laatste onthouden). 18
19 Pointers Spaghetti class vanalles { public: int info; char naam; vanalles* volgende; vanalles* andere; };//vanalles info naam andere volgende entree 42 t (#) 65 x NULL 10 x 19 b NULL ($) ($) entree->volgende->andere (#) entree->volgende->volgende->info of entree->andere->info 19
20 Pointers Call by value/reference 1 Bekijk de volgende functie: void demo (char letter, vakje* ingang) { if ( ingang!= NULL ) ingang->info = letter; }//demo We doen ingang = NULL; zetervoor ( A,ingang);: ingang A NULL Daarna demo ( B,ingang); met en zonder & voor de parameter ingang. In beide gevallen krijgen we: ingang B NULL 20
21 Pointers Call by value/reference 2 Maar nu de volgende functie: void demoanders (vakje* ingang) { ingang = NULL; }//demo Met & zal de pointer p (als hij niet NULL was) bij aanroep demoanders (p); veranderen, zonder & niet. NB Dat wat er al dan niet veranderen kan is de pointer. Dat waar de pointer naar wijst kan altijd veranderen! 21
22 Pointers Pointers en arrays Pointers en arrays hebben veel met elkaar te maken. Stel dat we hebben int A[10]; en int * p;. Dan kun je het volgende doen: p = A; // p wijst A[0] aan p++; // p wijst A[1] aan p++; // p wijst A[2] aan cout << A[2] << " is gelijk aan " << *p << endl; Dus p loopt het array langs, en p++; gaat naar het volgende array-element, waarbij de grootte van (in dit geval) int, sizeof (int) dus, gebruikt wordt als stapgrootte. 22
23 Pointers Zoeken in pointerlijst class vakje { public: char info; vakje* volgende; };//vakje // Vindt eerste vakje met letter erin (uit lijst met // ingang), als zo n vakje bestaat; anders NULL vakje* vind (char letter, vakje* ingang) { vakje* hulp = ingang; // NIET eerst hulp = new vakje; while ( hulp!= NULL ) if ( letter == hulp->info ) return hulp; // of met bool gevonden... else hulp = hulp->volgende; return NULL; // en geen delete s! }//vind 23
24 Pointers Zoeken in pointerlijst recursief // Vindt eerste vakje met letter erin (uit lijst met // ingang), als zo n vakje bestaat; anders NULL // nu recursief vakje* vindrecursief (char letter, vakje* ingang) { if ( ingang == NULL ) return NULL; else if ( ingang->info == letter ) return ingang; else // komt letter voor in rest van de lijst? return vindrecursief (letter, ingang->volgende); }//vindrecursief Let op: de functie retourneert een pointer! 24
25 Pointers Opgave 58 Wat gebeurt er met en zonder &? void tjatja (int* & r, int* & s) { r = new int; *r = 1; *s = 96; }//tjatja int main ( ) { int* p; int* q; p = new int; *p = 3; q = new int; *q = 4; cout << *p << *q << endl; tjatja (p,q); cout << *p << *q << endl; return 0; }//main Met &: Zonder &: 3 4 3(!) 96 25
26 Pointers Pointerpracticum 1 In het werkcollege (16/17 november 2017) gebruiken we: class vakje { public: int info; vakje* volgende; int* andere; };//vakje ingang NULL info andere volgende kosterswa/pm/pmwc10.php 26
27 Pointers Pointerpracticum 2 En voor een dubbel-verbonden pointerlijst: class element { class lijst { public: private: element* vorige; element* ingang; int info; element* uitgang; element* volgende; public: };//element void afdrukkenva ( );... lijst L; };//lijst L.ingang L.uitgang NULL NULL vorige info volgende 27
28 Pointers Vierde programmeeropgave De Grote getallen programmeren we als volgt: week 1: pointerpracticum, opgave lezen week 2: drie files (makefile), klassen, inlezen, optellen week 3: Fibonacci, vermenigvuldigen, menu week 4: experiment (gnuplot), verslag 28
29 Pointers Tot slot lees de vierde programmeeropgave en denk na over de klassen de deadline is op vrijdag 8 december 2017 lees Savitch Hoofdstuk 10 lees dictaat Hoofdstuk 3.12 maak opgaven 57/61 uit het opgavendictaat doe het pointerpracticum: werkcollege 10 kosterswa/pm/ 29
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,
Programmeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/
Programmeermethoden Functies vervolg Walter Kosters week 5: 1 5 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files manipuleren 1 Deze void-functie telt niet-lege regels in een file invoer: void
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,
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:
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)
Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/
Programmeermethoden Controle-structuren Walter Kosters week 3: 17 21 september 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleveren opgave 1 Inleveren: digitaal clintonobama1.cc en print van mooi.pdf.
Programmeermethoden. Arrays. Walter Kosters. week 7: oktober kosterswa/pm/
Programmeermethoden Walter Kosters week 7: 15 19 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Nonogrammen Japanse puzzels (Nonogrammen) zien er zo uit: 1 1,1 1 1,1 1 0 1,1 0 1,1 3 7 7 7 7 7 7
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)
Programmeermethoden. Files & functies. Walter Kosters. week 4: september kosterswa/pm/
Programmeermethoden Files & functies Walter Kosters week 4: 24 28 september 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files Introductie En dan nu eerst: files. Input en output voor programma s staan
HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10
CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel
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
Programmeermethoden. Files & functies. Walter Kosters. week 4: september kosterswa/pm/
Programmeermethoden Files & functies Walter Kosters week 4: 26 30 september 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files Introductie En dan nu eerst: files. Input en output voor programma s staan
Lineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
Programmeermethoden. Object-geOriënteerd Programmeren & Life. week 6: oktober kosterswa/pm/
Programmeermethoden 7 7 7 7 7 Object-geOriënteerd Programmeren & Life week 6: 10 14 oktober 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Functies Tweede programmeeropgave char prevkar = \n, kar = invoer.get
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
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)
Programmeermethoden. Arrays (vervolg) Walter Kosters. week 8: 29 oktober 2 november kosterswa/pm/
Programmeermethoden Walter Kosters week 8: 29 oktober 2 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Programma 2018 Tweede deel week onderwerp boek dictaat 29 okt 2 nov 5 4.2,op37/43 5 9 nov
Programmeermethoden. Types. Walter Kosters. week 2: september kosterswa/pm/
Programmeermethoden Types Walter Kosters week 2: 12 16 september 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Types Eerste programmeeropgave Opmerkingen Programmeermethoden 2016 Eerste programmeeropgave:
Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur
Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Achtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Een gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Verslag Opdracht 4: Magische Vierkanten
Verslag Opdracht 4: Magische Vierkanten Stefan Schrama, Evert Mouw, Universiteit Leiden 2007-08-14 Inhoudsopgave 1 Inleiding 2 2 Uitleg probleem 2 3 Theorie 2 4 Aanpak 2 5 Implementatie 4 6 Experimenten
sheets Programmeren 1 Java college 6, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 13 en 14 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Online c++ leren programmeren:
Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma
http://www.liacs.nl/home/kosters/java/
sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
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
recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
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
10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
Introductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is
Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
[8] De ene 1 is de andere niet
[8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.
Ingebouwde klassen & methodes
Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private
Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
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
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
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
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
IMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Programmeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
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
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.
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan
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 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
Dynamisch geheugen beheer
Dynamisch geheugen beheer + Normaal wordt laats in het werkgeheugen gereserveerd tijdens de comilatie aan de hand van de declaraties van de variabelen. + Deze geheugenreservering is statisch: in het bronbestand
Algoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet [email protected] assistent werkcollege: Bart van Strien [email protected] website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Een korte samenvatting van enkele FORTRAN opdrachten
Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5
Programmeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Uitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
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
Programmeren in C# Samenvatting van C#
Programmeren in C# Samenvatting van C# Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen,
Dynamisch Programmeren. Het Rugzakprobleem
INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows. fileg``unixvisualosfedoralscharpsopenclosegetputarray
C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows fileg``unixvisualosfedoralscharpsopenclosegetputarray XPcpelmmuttelsecoutmainRedHatmkdireditorenumDebian classusingmathunitytruecpsusenamespacestructinclude
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
Programmeermethoden. Talen: Java, Qt, Python,... Walter Kosters. week 14: december
Programmeermethoden Talen: Java, Qt, Python,... Walter Kosters week 14: 11 15 december 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ www.mathworks.com, www.java.com, www.qt.io, www.python.org en www.appinventor.mit.edu
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
1. Geef type en zo mogelijk de waarde van de volgende uitdrukkingen. Hierbij zijn p, q, r ensvariabelen van typebool, enkvan typeint.
Dit document bevat opgaven voor zelfstudie bij het eerstejaars college Programmeermethoden, Universiteit Leiden, najaar 2010, zie (ook voor de antwoorden) www.liacs.nl/home/kosters/pm/ Met dank aan allen
PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd
Inhoudsopgave 1 Inleiding... 1 2 Toekenning- en herhalingsopdrachten (for loop)... 2 2.1 De wet van Ohm... 3 2.2 De spaarrekening... 3 2.3 De transformator... 3 3 Keuze- en herhalingsopdrachten (if, switch,
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.
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur
Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, 8.30-10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen
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
Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008
judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3
