Programmeermethoden. Talen: Python,... Walter Kosters. week 14: december kosterswa/pm/

Maat: px
Weergave met pagina beginnen:

Download "Programmeermethoden. Talen: Python,... Walter Kosters. week 14: december kosterswa/pm/"

Transcriptie

1 Programmeermethoden Talen: Python,... Walter Kosters week 14: december kosterswa/pm/ 1

2 Talen Algemeen Naast C ++ (C: Brian Kernighan, Dennis Ritchie, Ken Thompson, ± 1970; C ++ : Bjarne Stroustrup, ± 1985, nu C ++ 17), wordt ook veel MATLAB gebruikt, en Java. En Qt voor interfaces. En... Python. Ritchie en Thompson in

3 MATLAB Visueel 3

4 MATLAB De taal MATLAB, zelf in C geschreven, is met name goed in allerlei wiskundige operaties: matrices,... ; de taal heeft ook veel grafische mogelijkheden: plotten,... Nadeel: MATLAB is duur. Naast de workspace heb je de command history en de command window. Programma s (scripts) hebben extensie.m. MATLAB is, net als Python, weakly dynamically typed. 4

5 Java Introductie De programmeertaal Java lijkt veel op C ++. Enkele belangrijke verschillen: Java is (nog) meer object-georienteerd Java heeft automatische garbage collection Java heeft (bijna) geen pointers Java is platform-onafhankelijk Java kent applets: WWW-applicaties, met GUI s 5

6 Java Compileren Hoe compileer je een Java-programma, dat in Iets.java staat? Met javac *.java compileer je al je Java-files naar bytecode, in ons geval naar Iets.class. Deze kan met java Iets op elke computer gedraaid (om precies te zijn: geinterpreteerd) worden met behulp van de Java Virtual Machine (JVM). Dit bovenstaande geldt voor tekst-applicaties. Een applet wordt bekeken met een webbrowser, en je moet dan een aparte HTML-pagina naam.html maken die de bytecode aanroept. Rechtstreeks (zonder browser) kan vaak ook eenvoudig met appletviewer naam.html, zie later. Overigens, Java is iets heel anders dan JavaScript. 6

7 Java Hello world Maak een file Hello.java met public class Hello { public static void main (String[ ] argv) { System.out.println ("Hello world!"); }//main }//class Hello En dan javac Hello.java en java Hello. Let op: filenaam = naam public klasse (met hoofdletter). Er kunnen meer klasses in een file staan, maar er is er maar één public, en bij diens public static void main begint de executie van het programma. 7

8 Java Applet import java.awt.*; import java.applet.*; import java.awt.event.*; public class Muis5 extends Applet //Swing implements MouseListener, MouseMotionListener { public int teller = 0; public void init ( ) { addmouselistener (this); addmousemotionlistener (this); }//init public void paint (Graphics g) { g.setcolor(color.white); g.fillrect(10,10,500,500); }//paint public void mouseclicked (MouseEvent event) { }//mouseclicked public void mousereleased (MouseEvent event) { }//mousereleased public void mousepressed (MouseEvent event) { }//mousepressed public void mouseentered (MouseEvent event) { }//mouseentered public void mouseexited (MouseEvent event) { }//mouseexited public void mousedragged (MouseEvent event) { Graphics g = getgraphics ( ); teller++; switch ( teller % 4 ) { case 0: g.setcolor (Color.red); break; case 1: g.setcolor (Color.green); break; case 2: g.setcolor (Color.black); break; case 3: g.setcolor (Color.blue); break; }//switch g.drawline (event.getx ( ),event.gety ( ), event.getx ( )+10,event.getY ( )+10); }//mousedragged public void mousemoved (MouseEvent event) { }//mousemoved }//Muis kosterswa/java/muis.html kosterswa/java/sleep.html 8

9 Java-Qt Event-gestuurd Wat we hier en straks ook in Qt zien is dat de control-flow event-driven (event-gestuurd) is. En dat is anders dan wat we gewend zijn! Een onzichtbare hoofdloop (de event-lus ) loopt eindeloos door. Intussen worden, door events zoals muis-acties af te handelen, de gebruikerswensen vervuld. Dat zijn precies methoden (= memberfuncties) behorend bij bepaalde objecten. 9

10 Qt Introductie Qt ( cute of ku-tee ; de t komt van toolkit) is een cross-platform ontwikkelomgeving, met een ingebouwde C ++ -bibliotheek. Samenwerken met Java kan ook. Voor niet commercieel gebruik is het gratis. KDE, Google Earth, Skype en VLC zijn erin geschreven. Qt werkt met signals en slots. Als je iets doet, geeft je een signal, dat ergens door een slot wordt opgevangen. 10

11 Qt Tutorial Hoe leer je Qt? Of Qt Designer? Ga naar een Linux-systeem. Geef in een terminal-window het commando designer & om Qt Designer te starten. 11

12 Qt Oefening Maak vervolgens een mooie GUI (Grafische User Interface) voor Boter, kaas en eieren. Gebruik daarbij de C ++ -code in boter.cc die hier te vinden is: kosterswa/pm/qt.php 12

13 apps apps En hoe maak je snel een app? Bijvoorbeeld met MIT APP Inventor, zie appinventor.mit.edu/ 13

14 Python Python Python, ook zeer geschikt voor scripting en prototyping, is ontwikkeld door Guido van Rossum uit Nederland. Er zit veel overlap in met de andere genoemde talen. Voor meer informatie, zie: kosterswa/pm/pythonextra.php Workshop Python speciaal voor studenten Wis- en Natuur/Sterrenkunde nodig voor Diffusie en Praktische Sterrenkunde maandag 28 januari 2019, 10:00 13:00, Snellius

15 Python Kenmerken interpreteren, niet compileren: python hello.py def hello(): print("hello world!") hello() interactieve mode type van variabele kan eenvoudig wijzigen indentatie NumPy, Matplotlib,... 15

16 Python Een groter programma # Dit is een regel met commentaar import math # voor "pi" print("geef straal, en Enter.. ",end="") straal = float(input()) if straal > 0: print("oppervlakte: ",end="") print(math.pi * straal * straal) else: print("niet zo negatief...") print("einde van dit programma.") exit(0) Geen accolades, geen punt-komma s. Dit is overigens Python3; er zijn subtiele verschillen met oudere versies. 16

17 Python Variabelen Interactieve mode, via python3: >>> a, b, c = 1, , "een string" # gebruik " of >>> print(type(a),type(b),type(c)) <class int > <class float > <class str > >>> a = "wat anders" >>> print(type(a),a) <type str > wat anders >>> 42**97 # machtsverheffen L >>> a+d # gaat fout: Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name d is not defined >>> Ctrl-D 17

18 Python if/for Let op de indentatie = het inspringen: if y >= 3 and ( x == 4 or x == 5 ): # and voor &&... pass # doe niets elif z == 12: # in plaats van else if uit C++ x = 0 y = 678 else: print("hoe verzin je het!") for karakter in [ a, e, i, o, u ]: print(karakter,end="") som = 0 for i in range(6): # i = 0,1,2,3,4,5 som = som + i*i 18

19 Python Functies & Lezen uit file def telop(a,b): c = a + b return c q = telop(12345,6789) f = open("mijnfile.txt","r") for regel in f: print(regel,end="") f.close() 19

20 Python Parameter-overdracht Parameter-overdracht in Python is call-by-object-reference: def vergroot(lijst): lijst += [10,20,30,40] def vernieuw(lijst): lijst = [1000,1001] lijst = [7,8] # een "mutable" object vergroot(lijst) # nu is lijst [7,8,10,20,30,40] vernieuw(lijst) # en nu is lijst nog steeds [7,8,10,20,30,40] En integers zijn immutable. 20

21 Python Sorteren def simpelsort(a): for i in range(len(a)): # Zoek kleinste element in ongesorteerde stuk [i:] kl = i for j, el in enumerate(a[i:]): if el < A[kl]: kl = i + j # Wissel om if i!= kl: A[i], A[kl] = A[kl], A[i] # Test B = [47, 10, 7, 3, 31, 75, 18, 21, 48, 79] simpelsort(b) print(b) 21

22 Python Plotten import numpy as np # hier zitten ook arrays in! import matplotlib.pyplot as plt # Bepaal de x-coordinaten waarvoor we willen plotten x = np.arange(0, 10, 0.5) # Bereken nu voor elk x-coordinaat de y-waarde # Functie: y = 3x^2 + 5 y = 3 * x * x + 5 # Geef de x- en y-arrays als parameters aan de plot-functie plt.plot(x, y) # Zet de plot op het scherm plt.show() exit(0) 22

23 Tentamen Opgave 1 Opgave 1 van het tentamen van 9 januari 2006: We hebben een array B met verschillende double s, zoals: a. Schrijf een C ++ -functie void gk (B,gr,kl,n) die in gr en kl de array-indices van het grootste en kleinste getal van B (met n 2 elementen) oplevert. Er moet precies één for-loop gebruikt worden. (In het voorbeeld: 3 en 1.) b. Schrijf een C ++ -functie int stijgdaal (B,n) die bepaalt hoeveel locale extremen B heeft: array-elementen waarvoor beide directe buren kleiner zijn, of juist beide groter. Eerste en laatste element zijn per definitie ook locale extremen. (Voorbeeld: 5; 3.1 niet.) c. Schrijf een C ++ -functie bool opso (B,n) die bepaalt of B oplopend gesorteerd is. Het array mag alleen met de functies van a en b benaderd worden. (Voorbeeld: false.) d. Schrijf een C ++ -functie int lang (B,n) die bepaalt wat de lengte is van de langste stijgende serie aaneengesloten array-elementen. (Voorbeeld: 3, namelijk ) e. Als c, maar gebruik nu alleen de functie van d. soms ook iets over complexiteit : O(n 2 )... 23

24 Tentamen Opgave 2 Opgave 2 van het tentamen van 6 januari 2015: a. Bij een functie kun je te maken hebben met call by value en call by reference, en ook met locale en globale variabelen. Verder onderscheiden we ook nog formele en actuele parameters. Leg deze zes begrippen duidelijk uit. b. Gegeven een C ++ -programma met daarin de volgende twee functies: int ludo (int a, int b, int n) { int i = 42; for ( i = 0; i < n; i += 2 ) { b += a; i--; }//for return b; }//ludo int jeanine (int a, int b) { a = ludo (a,b,a); cout << a << "," << b << endl; a = ludo (a,b,a); cout << a << "," << b << endl; return a; }//jeanine Verder zijn de globale variabelen x en y gegeven (van type int). Wat is dan de uitvoer van het volgende stukje programma (leg je antwoord duidelijk uit): x = 2; y = 2; y = jeanine (x,y); cout << x << "," << y << endl; c. Als b, maar nu met een & ( ampersand ) bij de vijf parameters van de functies. d. Geef een eenvoudige uitdrukking voor de return-waarde van een aanroep ludo (a,b,n), uitgedrukt in diens parameters. Het maakt niet uit of er & s bij de parameters staan. e. Als d, maar nu voor jeanine (a,b). Neem aan dat er bij alle vijf parameters een & staat, net als bij c. f. Als in de functie ludo ergens a = jeanine (a,2*n); staat, compileert het programma dan nog? Onderscheid gevallen met en zonder &. 24

25 Tentamen Uitwerking Opgave 2b tijd main jeanine ludo x y a b a b n i aanroep jeanine eerste aanroep ludo geeft 6 terug 6 cout: 6, tweede aanroep ludo geeft 38 terug 38 cout: 38,2; geeft 38 terug 38 cout: 2,38 25

26 Tentamen Uitwerking Opgave 2c main ludo x y i = a uit jeanine = b uit jeanine = a uit ludo = b uit ludo = n uit ludo 2 2 aanroep jeanine 42 eerste aanroep ludo geeft 6 terug 6 cout: 6,6 42 tweede aanroep ludo geeft 42 terug 42 cout: 42,42; geeft 42 terug 42 cout: 42,42 d. n a + b (als n 0) e. (a 2 + b) 2 + a 2 + b f. Dan moet de tweede parameter van jeanine call by value zijn, en een prototype van jeanine moet boven ludo staan. tijd 26

27 Tentamen Opgave 3 Opgave 3 van het tentamen van 2 april 2007: Gegeven is een n bij n (met n een const 2) array kost: int kost[n][n];, gevuld met gehele getallen 0. Een getal kost[i][j] > 0 stelt de kosten voor om rechtstreeks van i naar j te reizen (0 i, j < n en i j), en kost[i][j] = 0 betekent dat er geen directe verbinding is van i naar j. Er geldt kost[i][i] = 0 voor 0 i < n; verder is vanuit iedere plaats minstens één directe reis mogelijk. Als je rechtstreeks van i naar j kunt reizen, kun je ook direct van j naar i; maar misschien verschillen de kosten wel! a. Schrijf een C ++ -functie double gem (kost,i) die bepaalt wat de gemiddelde kosten zijn voor een directe reis vanuit i (0 i < n). Denk eraan te middelen over de niet-nullen. b. Schrijf een functie verschil (kost) die het grootste absolute verschil uitrekent dat je kunt hebben tussen directe reizen van i naar j en j naar i (tussen heen- en terugreizen dus), voor willekeurige i en j. Onderzoek hiertoe alle paren (i, j). c. Schrijf een C ++ -functie hoeveel (kost,i) die bepaalt hoeveel plaatsen je vanuit een zekere i (0 i < n) kunt bereiken, inclusief i zelf, waarbij je zo vaak je wilt mag overstappen. Hint: gebruik een array bool D[n], initieel gevuld met false s (alleen D[i] = true), waar in D[j] moet komen of je j kunt bereiken. 27

28 Tentamen Opgave 4.1 Opgave 4 van het tentamen van 8 januari 2007: Gegeven is het volgende type: class info { public: info* volgl; info* volgg; char letter; int getal; }; Met behulp hiervan worden rijtjes (lijstjes) met letter-getal combinaties opgebouwd; alle gebruikte letters en getallen verschillen onderling. Het veld volgl bevat een pointer naar het info-object met de eerstvolgende alfabetisch grotere letter (of NULL), het veld volgg een pointer naar het object met het eerstvolgende grotere getal (of NULL). Een voorbeeld (ingang van type info*; deze wijst steeds het object met het kleinste getal aan), waarbij volgg de meest rechtse pointer in ieder object is: ingang F 16 NULL B 42 A 44 D 66 NULL Het object met B en 42 erin heeft hier een pointer volgl naar het object met D en 66, en een (horizontale) pointer volgg naar het object met A en 44. a. Schrijf een C ++ -functie voegtoe (ingang,let,get) die een nieuw object met getal get en letter let erin vooraan de structuur (met ingang van type info* als ingang) toevoegt. Neem aan dat het eerste getal uit de oude lijst groter is dan get. Maak de nieuwe volgl-pointer NULL, en verander (nog) niets aan de andere volgl-pointers. 28

29 Tentamen Opgave 4.2 Opgave 4 van het tentamen van 8 januari 2007, vervolg: b. Schrijf een C ++ -functie verwijder (ingang) die het eerste object uit de lijst (met ingang van type info* als ingang) verwijdert indien in dat vakje niet de letter D en het getal 66 zitten. Denk aan de lege lijst. Verander niets aan volgl-pointers. c. Schrijf een C ++ -functie verwissel (ingang) die eerste en tweede (via de volggpointer) object verwisselt (dus niet de inhouden), indien deze bestaan en het getal uit het eerste object groter is dan dat uit het tweede, en anders niets doet. d. In de functies bij a, b en c staat in de heading de parameter ingang. Deze heb je call by value of call by reference doorgegeven (met een &). Maakt het voor de werking van deze functies verschil uit of die & erbij staat? Leg duidelijk uit. e. Vul de functie voegtoe van a aan zodat na afloop alle volgl-pointers goed staan. Neem aan dat er minstens één letter < let in de lijst voorkomt. Tip: zoek de grootste kleinere. 29

30 Tentamen Oud tentamen: 13/ Werkcollege Programmeermethoden 13/14 december 2018 Zalen: B1 en B3, resp. B2 en B3 Tentamen vrijdag 4 januari In een array int A[n] staan n (een const > 0) verschillende gehele getallen. a. Schrijf een C ++ -functie klein (A,i,kl,n) die de array-index van het kleinste getal uit A[i], A[i+1],..., A[n-1] in de parameter kl oplevert. Neem aan dat 0 i < n. NB Geef hier (en ook in de andere opgaven) de compleet ingevulde heading van de functie! b. Schrijf een Booleaanse C ++ -functie gesorteerd (A,i,n) die precies dan true teruggeeft als A[i] < A[i+1] <... < A[n-1], en anders false. Neem weer aan dat 0 i < n. c. Schrijf een C++-functie sorteer (A,n) die het array A oplopend sorteert door herhaald te kijken of het steeds kleiner wordende staartstuk al gesorteerd is, zo ja te stoppen, en zo nee het kleinste getal van het nog resterende gedeelte met het voorste te wisselen. Gebruik de functies van a en b. d. Hoeveel vergelijkingen tussen array-elementen doet sorteer minimaal? Tel hierbij zowel de vergelijkingen die in de aanroepen van klein als in die van gesorteerd worden gedaan. In welk(e) geval(len) gebeurt dit? e. En hoeveel vergelijkingen tussen array-elementen doet sorteer maximaal? 2.a. Bij een functie kun je te maken hebben met call by value en call by reference, en ook met locale en globale variabelen. Verder onderscheiden we ook nog formele en actuele parameters. Leg deze zes begrippen duidelijk uit. b. Gegeven een C ++ -programma met daarin de volgende twee functies: bool mark (int a, int b) { int z; a = a + b; b = a - b; a = a - b; cout << "M" << a << "," << b << endl; z += 10; return ( a < b ); }//mark int diederik (int b, int a) { bool temp; if ( mark (b,a) ) a += 2; while ( a > 0 ) { temp = mark (a,b); a--; cout << a << "," << b << endl; } z += 10; return ( a + b + 2 ); }//diederik Verder zijn de globale variabelen x, y en z gegeven (van type int). Wat is dan de uitvoer van het volgende stukje programma (leg je antwoord duidelijk uit; tip: 9 komma s): x = 1; y = 3; z = 1; x = diederik (y,z); cout << x << "," << y << "," << z; c. Als b, maar nu met een & ( ampersand ) bij de vier parameters van de functies. d. Als c, dus met vier & s erbij, voor: x = 1; y = 3; z = 1; y = diederik (y,y); cout << x << "," << y << "," << z; e. Als in de functie mark ergens a = diederik (static_cast<int>(mark (a,b)),y); staat, compileert het programma dan nog? Onderscheid gevallen met en zonder &. 3. Gegeven is een m bij m (een const > 0) Booleaans array T. Hierbij geeft T[i][j] aan of er een rechtstreekse trein van station i naar station j rijdt (true) of niet (false). Er gaat nooit een directe trein van een station naar zichzelf. 1 false false true true false true false true false a. Schrijf een C ++ -functie int duos (T) die berekent hoeveel duos (i, j) met 0 i < j < m er in T zijn, waarvoor geldt dat er zowel een rechtstreekse trein van i naar j is als van j naar i. In het voorbeeld: 1, namelijk (1, 2). b. Schrijf een C++-functie int druk (T) die het station met de meeste in- en uitgaande directe verbindingen geeft. Als er meer stations met deze eigenschap zijn, geef dan dat met het hoogste nummer. In het voorbeeld: station 2 (3 directe verbindingen, net als 1). c. Schrijf een Booleaanse C++-functie bereik (T,i,j) die precies dan true teruggeeft als je j vanuit i kunt bereiken met één overstap. Of er ook nog een rechtstreekse verbinding is, doet er niet toe. Neem aan dat 0 i, j < m en i j. d. Schrijf een C++-functie int aantal (T,i) die bepaalt hoeveel stations je, beginnende in station i, als volgt bezoekt, totdat je niet meer verder kunt. Je gaat steeds, met precies één overstap (gebruik de functie van c) naar het eerstvolgende station met een hoger nummer. In het voorbeeld: vanuit i = 1 reis je (met overstap in 0) naar 2, en klaar, met 2 bezochte stations. De stations waar je overstapt worden niet meegeteld. 4. Gegeven is het volgende type: class element { public: int info; element* rechts; element* onder; }; Hiermee wordt een graaf-achtige structuur gemaakt. Het veld rechts bevat een pointer naar het eerstvolgende rechts ernaast gelegen element-object. De onder-pointer (steeds het middelste vakje in het voorbeeld) wijst naar het er direct onder gelegen elementobject. Neem aan dat er maximaal twee rijen zijn, en dat boven elk object uit de tweede rij altijd precies één object uit de eerste zit. Een voorbeeld (begin van type element*): vanmiddag in B1 en B NULL 42 begin 5678 NULL 512 NULL NULL morgenmiddag in B2 en B3 39 NULL NULL a. Schrijf een C++-functie verwijder (begin) die het eerste element-object uit de structuur (met begin van type element* als ingang) netjes verwijdert, mits dat object bestaat. Als er een element-object onder is, moet dit eerst worden verwijderd. In het voorbeeld moeten de objecten met 5678 en 314 erin verwijderd worden. b. Schrijf een C ++ -functie voegtoe (begin,getal) die een nieuw element-object met getal erin vooraan de structuur met ingang begin toevoegt mits de structuur leeg is, of het voorste getal uit de structuur even is (zoals in het voorbeeld). c. Schrijf een C ++ -functie voegtoe2 (begin,getal) die een nieuw element-object met getal erin onder het eerste object van de structuur met ingang begin toevoegt mits dat eerste object bestaat, en daar nog geen object onder zit, en anders niets doet. Zet de rechts-pointer voorlopig op NULL. d. In de functies bij a, b en c staat in de heading een pointer. Deze heb je call by value of call by reference doorgegeven (met een &). Maakt het voor de werking van deze functies verschil uit of die & erbij staat? Mag het, moet het? Leg duidelijk uit. e. Schrijf een C ++ -functie zetrechts (begin) die alle rechts-pointers in de tweede rij goed zet, ongeacht wat hun waardes waren. Denk aan de laatste! Zie kosterswa/pm/ voor meer vragen en antwoorden! 2 30

31 Tentamen Opgave 2 Opgave 2 van het tentamen van 4 januari 2013: b. Gegeven een C ++ -programma met daarin de volgende twee functies: bool mark (int a, int b) { int z; a = a + b; b = a - b; a = a - b; cout << "M" << a << "," << b << endl; z += 10; return ( a < b ); }//mark int diederik (int b, int a) { bool temp; if ( mark (b,a) ) a += 2; while ( a > 0 ) { temp = mark (a,b); a--; cout << a << "," << b << endl; } z += 10; return ( a + b + 2 ); }//diederik Verder zijn de globale variabelen x, y en z gegeven (van type int). Wat is dan de uitvoer van het volgende stukje programma (leg je antwoord duidelijk uit; tip: 9 komma s): x = 1; y = 3; z = 1; x = diederik (y,z); cout << x << "," << y << "," << z; c. Als b, maar nu met een & ( ampersand ) bij de vier parameters van de functies. d. Als c, dus met vier & s erbij, voor: x = 1; y = 3; z = 1; y = diederik (y,y); cout << x << "," << y << "," << z; e. Als in mark ergens a = diederik (static_cast<int>(mark (a,b)),y); staat, compileert het programma dan nog? Onderscheid gevallen met en zonder &. 31

32 Tentamen Uitwerking Opgave 2b main diederik mark tijd x y z a b temp a b ? aanroep diederik 3 1 eerste aanroep mark (z doet er niet toe) 1 3 cout: M1,3; geeft true terug 3 a += 2; uit diederik 3 3 tweede aanroep mark 3 3 cout: M3,3; geeft false terug 2 false cout: 2,3 2 3 derde aanroep mark 3 2 cout: M3,2; geeft false terug 1 false cout: 1,3 1 3 vierde aanroep mark 3 1 cout: M3,1; geeft false terug 0 false cout: 0,3 11 geeft 5 terug aan x 5 cout: 5,3,11 32

33 Tentamen Uitwerking Opgave 2c main mark x y z temp tijd = b uit diederik = a uit diederik 1 3 1? aanroep diederik = a uit mark = b uit mark eerste aanroep mark 1 3 cout: M1,3; geeft true terug 5 a += 2; uit diederik = b uit mark = a uit mark tweede aanroep mark 5 1 cout: M1,5; geeft true terug 0 true cout: 0,5 10 geeft 17 terug aan x 17 cout: 17,5,10 33

34 Tentamen Uitwerking Opgave 2d main mark x y z temp = a uit diederik = b uit diederik 1 3 1? aanroep diederik = a uit mark aanroep mark = b uit mark 0 cout: M0,0; geeft false terug 11 geeft 2 terug aan y 2 cout: 1,2,11 tijd e. Dit mag alleen als er geen & staat voor de eerste parameter van diederik, en er boven mark een prototype van diederik wordt gezet. 34

35 Programmeermethoden Tot slot werk wellicht nog aan de vierde programmeeropgave de deadline is al voorbij! donderdag 13 en vrijdag 14 december s middags: werkcollege met oude tentamens in zalen B1 en B3, resp. B2 en B3 tentamen: donderdag 3 januari 2019, uur, Snellius (recht op extra tijd: zaal B1) hertentamen: donderdag 14 maart 2019, 14:00 17:00 uur, Snellius kosterswa/pm/ 35

Programmeermethoden. Talen: Java, Qt, Python,... Walter Kosters. week 14: december

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

Nadere informatie

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters http://www.liacs.nl/home/kosters/java/ 1 Java intro Voorkennis: dat wat bij het college Programmeren 1 over Java behandeld is; zie

Nadere informatie

Programmeermethoden. Arrays (vervolg 2) Walter Kosters. week 9: 6 10 november kosterswa/pm/

Programmeermethoden. Arrays (vervolg 2) Walter Kosters. week 9: 6 10 november kosterswa/pm/ Programmeermethoden Arrays (vervolg 2) Walter Kosters week 9: 6 10 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Derde programmeeropgave Life:... citatie/referentie: Tja~\cite{abc} levert Tja

Nadere informatie

http://www.liacs.nl/home/kosters/java/

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/

Nadere informatie

De Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop

De Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop DLF Pointerworkshop Opgaven 2 maart 2016 XKCD # 371 In dit document staan een aantal oude tentamenopgaven om te oefenen voor het hertentamen PR Bij de selectie is rekening gehouden met de opgaven die het

Nadere informatie

http://www.liacs.nl/home/kosters/pm/

http://www.liacs.nl/home/kosters/pm/ Programmeermethoden MATLAB, Java, Qt,... week 14: 10 14 december 2012 http://www.liacs.nl/home/kosters/pm/ www.mathworks.nl/products/matlab, java.sun.com/ en qt.digia.com/ 1 Talen Algemeen De laatste jaren

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

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)

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

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:

Nadere informatie

Programmeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/

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

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

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,

Nadere informatie

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall, sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/

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

Nadere informatie

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

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,

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

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

Nadere informatie

Programmeermethoden NA

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

Nadere informatie

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

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.

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

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 tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x

Nadere informatie

Python voor Natuur- en Sterrenkundigen Week 1

Python voor Natuur- en Sterrenkundigen Week 1 Python voor Natuur- en Sterrenkundigen Week 1 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Wat is Python & Waarom Python? "Scripttaal", ontworpen door Guido van Rossum eind

Nadere informatie

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/

Nadere informatie

Programmeermethoden. Arrays (vervolg) Walter Kosters. week 8: 29 oktober 2 november kosterswa/pm/

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

Nadere informatie

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

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

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

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

Nadere informatie

Programmeermethoden. Arrays. Walter Kosters. week 7: oktober kosterswa/pm/

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

Nadere informatie

Een stoomcursus door Edgar de Graaf, november 2006

Een stoomcursus door Edgar de Graaf, november 2006 Programmeren in Java Een stoomcursus door Edgar de Graaf, november 2006 Deze tekst geeft een zeer korte inleiding in de programmeertaal Java, uitgaande van kennis van de taal C++. Daarnaast bestudere men

Nadere informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

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)

Nadere informatie

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

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

Nadere informatie

C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows. fileg``unixvisualosfedoralscharpsopenclosegetputarray

C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows. fileg``unixvisualosfedoralscharpsopenclosegetputarray C``ifPCwhileLinuxdiffintFirefoxboolpublicprivateWindows fileg``unixvisualosfedoralscharpsopenclosegetputarray XPcpelmmuttelsecoutmainRedHatmkdireditorenumDebian classusingmathunitytruecpsusenamespacestructinclude

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

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

Nadere informatie

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14 Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 19, 2018 Overzicht Grafische programma s en tekstgebaseerde programma s Stijladviezen (Jeff Knupp, Writing Idiomatic Python) File Processing (Zelle 5.9.2)

Nadere informatie

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

Nadere informatie

Inleiding programmeren

Inleiding programmeren Inleiding programmeren Docent: José Lagerberg Assistenten: Robin de Vries, Jordy Perlee, Dimitri Belfor, Stephen Swatman, Erik Kooistra, Daan Kruis, Daniel Louwrink Cursusinformatie: https://staff.fnwi.uva.nl/j.m.lagerberg

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

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

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

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

Nadere informatie

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

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?

Nadere informatie

eerste voorbeelden in Java

eerste voorbeelden in Java Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele

Nadere informatie

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Vorige week: Controlestructuren # gegeven # 0

Nadere informatie

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

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

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Uitwerkingen. Python Assessment

Uitwerkingen. Python Assessment Uitwerkingen Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Uitwer king 1: Elementairedatatypes 1.a Een string bevat tekst in de vorm van Unicode characters, terwijl

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2013 Organisatie Docenten Jeroen Bransen Michael Moortgat Docenten Jeroen Bransen Imperatief programmeren (Java) Tot de kerst (ongeveer) Michael Moortgat

Nadere informatie

Programmeermethoden. Files & functies. Walter Kosters. week 4: september kosterswa/pm/

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

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017 Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.

Nadere informatie

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten

Nadere informatie

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

Nadere informatie

Modelleren en Programmeren

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));

Nadere informatie

Lineaire data structuren. Doorlopen van een lijst

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

Nadere informatie

IMP Uitwerking week 13

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

Nadere informatie

Niet-numerieke data-types

Niet-numerieke data-types Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en

Nadere informatie

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma: Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

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

Nadere informatie

Scala. Korte introductie. Sylvia Stuurman

Scala. Korte introductie. Sylvia Stuurman Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

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.

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

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

Nadere informatie

Ingebouwde klassen & methodes

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

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

Achtste college algoritmiek. 8 april Dynamisch Programmeren

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

Nadere informatie

Tweede college algoritmiek. 12 februari Grafen en bomen

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)

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Programmeermethoden NA. Week 4: Files & Functies

Programmeermethoden NA. Week 4: Files & Functies Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Vorige week: Controlestructuren # gegeven # 0

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje: [14] Functies Een goede programmeur doet altijd zijn best om zoveel mogelijk aan hergebruik van code te doen. Je probeert in je programma code te gebruiken die iemand anders heeft gemaakt, of code die

Nadere informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

Programmeren (1) Examen NAAM:

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

Nadere informatie

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie

Nadere informatie

Oefententamen 2. Tijd: 2 uur. Maximaal aantal punten: 30. Naam: Studentnummer:

Oefententamen 2. Tijd: 2 uur. Maximaal aantal punten: 30. Naam: Studentnummer: Oefententamen 2 C Naam: Studentnummer: Tijd: 2 uur Maximaal aantal punten: 30 Menselijke compiler (10 punten) 0. (1 punt) Stel, je haalt het tentamen als je tenminste een 5.5 gemiddeld hebt gehaald voor

Nadere informatie

Programmeren in Java les 3

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

Nadere informatie

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld

Nadere informatie

[8] De ene 1 is de andere niet

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

Nadere informatie

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

Nadere informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

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

Nadere informatie

VOORBLAD SCHRIFTELIJKE TOETSEN

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

Nadere informatie

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

9 Meer over datatypen

9 Meer over datatypen 9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,

Nadere informatie

Algoritmiek. 15 februari Grafen en bomen

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

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

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

Nadere informatie

Hoofdstuk 0. Van Python tot Java.

Hoofdstuk 0. Van Python tot Java. Hoofdstuk 0. Van Python tot Java. In dit eerste hoofdstuk maken we de overstap van Python naar Java. We bespreken de verschillen en geven wat achtergrondinformatie. In het volgende hoofdstuk gaan we dieper

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

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

Nadere informatie

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005

Imperatief Programmeren, derde deeltentamen (INFOIMP) 4 november 2005 Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFOIMP werd in 2005/2006 gegeven door Jeroen

Nadere informatie

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object

Syntax van opdracht. opdracht. expressie. variabele. = expressie ; klasse naam. methode naam. property naam += object Syntax van opdracht opdracht klasse naam methode naam ( expressie ) ; object expressie. property naam +=, variabele = expressie ; Static gewone methoden Bewerken een object Aanroep: object. methode ( )

Nadere informatie

Javascript oefenblad 1

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

Nadere informatie

Programmeermethoden NA. Week 3: Controlestructuren

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

Nadere informatie

Object-geOriënteerd Programmeren & Life

Object-geOriënteerd Programmeren & Life Programmeermethoden 7 7 Object-geOriënteerd Programmeren & Life 7 7 7 Walter Kosters week 6: 8 12 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Functies Tweede programmeeropgave char prevkar =

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

X. Grafische elementen

X. Grafische elementen X. Grafische elementen Om u te helpen bij grafische voorstellingen heeft java een aantal grafische afbeeldingen die u kunt gebruiken. Meestal worden zij in de methode paint(graphics g) geplaatst. Zij moeten

Nadere informatie

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Tentamen Imperatief Programmeren

Tentamen Imperatief Programmeren Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven

Nadere informatie

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

SPOJ oplossingen Gilles Callebaut 7 augustus 2015 SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je

Nadere informatie