datastructuren college 12

Maat: px
Weergave met pagina beginnen:

Download "datastructuren college 12"

Transcriptie

1 planning voor de rest van Datastructuren week maandag donderdag datastructuren college mei vandaag 22 mei college 12: GUI toets 2: backtracking practicum dies onderwijsvrij hemelvaart onderwijsvrij klassen & inheritance GUI 29 mei 5 juni college 13: GUI2 2 e pinksterdag onderwijsvrij practicum practicum 1 12 juni??? overzicht/herhaling??? extra oefenen?? 2 klassen klassen zijn de basis voor object oriëntatie klasse (class) samengesteld datatype met methoden object instantie van zo'n klasse (doos met naam, adres en inhoud) object oriëntatie: wereld bestaat alleen uit objecten kenmerken object oriëntatie hiding: privite overerving, inheritance: je hebt subtypes object identity: uniek kenmerk van individueel object: this pointer dynamic binding beslis tijdens uitvoeren programma welke versie van Inheritance (late binding) inheritance of overerving uitbreiding van bestaande klasse met nieuwe members (variabelen en/of methoden) herdefinitie van bestaande methoden basisklasse (base class): bestaande klasse afgeleide klasse (derived class): nieuwe, uitgebreide klasse voor implementatie is-a relatie student is een speciaal soort persoon auto is een speciaal soort voertuig mogelijk extra velden mogelijk extra methoden mogelijk herdefinitie van bestaande methoden een methode gebruikt moet worden: virtual 3 4 1

2 Voorbeeld Inheritance Inheritance: subtypes basis klasse: subklassen kunnen deze class Vehicle functie herdefinieren virtual ostream& info ( ostream& o ) return o << "A vehicle\n" ; ; 5 class MotorVehicle : public Vehicle protected: string license_nr; zichtbaar hier en in subklassen MotorVehicle ( const string& ln ) : license_nr ( ln ) const string& kenteken ( ) return license_nr ; ; ostream& info ( ostream& o ); // geen keyword virtual ; class Car : public MotorVehicle dit is weer een sub-klasse dit is een subklasse geeft aan dat je gaat herdefinieren Car ( const string& ln ) : MotorVehicle ( ln ) ; constructor van de ouder 6 meer subklassen van Vehicle class Bus : public MotorVehicle protected: int seats; Bus ( const string& ln, int s ) : MotorVehicle( ln ), seats( s ) ostream& info ( ostream& o ); ; class Bike : public Vehicle protected: int gears; Bike ( int g=1 ) : gears ( g ) ostream& info ( ostream& o ); implementatie methode info ostream& MotorVehicle :: info ( ostream& o ) return o << "A motor vehicle with reg no " << license_nr << endl; ostream& Bus :: info ( ostream& o ) return o << "A bus with reg no " << license_nr << " and " << seats << " seats\n"; ostream& Bike :: info ( ostream& o ) return o << "A bike with " << gears << " gears\n"; ; 7 8 2

3 Voorbeeld Gebruik void main() Car car ( "LS-HL-97" ); MotorVehicle mv ( "RV-ZJ-42" ); Bike bike ( 7 ); Bus bus ( "AB-CD-01", 40 ); car.info ( mv.info ( bike.info ( bus.info ( cout )))); geeft (alles statisch te bepalen) class diagram info MotorVehicle license_nr info kenteken Vehicle gears info Bike A bus with reg no AB-CD-01 and 40 seats A bike with 7 gears A motor vehicle with reg no RV-ZJ-42 A motor vehicle with reg no LS-HL-97 Car seats info Bus 9 10 gebruik inheritance alle subklassen erven methoden en attributen van basisklasse je kunt dus met een subklasse minstens het zelfde als met de basisklasse in C++ mag je een instantie van de subklasse gebruiken als men een instantie van de basisklasse verwacht void main ( ) Vehicle vehicles [ 4 ]; vehicles [ 0 ] = Car ( "LS-HL-97" ); vehicles [ 1 ] = MotorVehicle ( "RV-ZJ-42" ); vehicles [ 2 ] = Bus ( "AB-CD-01", 40 ); vehicles [ 3 ] = Bike ( 7 ); 11 Dynamic binding (late binding) void main ( ) Vehicle vehicles [ 4 ]; vehicles [ 0 ] = Car ( "LS-HL-97" ); vehicles [ 1 ] = MotorVehicle ( "RV-ZJ-42" ); vehicles [ 2 ] = Bus ( "AB-CD-01", 40 ); vehicles [ 3 ] = Bike ( 7 ); for ( int i=0; i<4; i++ ) vehicles [ i ]. info ( cout ); hier dus 4 keer: A vehicle welke info-methode te gebruiken?? Vehicle of Car, Bus,.. afspraak in C++: geen pointer en niet by-reference geen dynamic binding 12 3

4 Dynamic binding (late binding) 2 void main ( ) Vehicle * vehicles [ 4 ]; vehicles [ 0 ] = new Car ( "LS-HL-97" ); vehicles [ 1 ] = new MotorVehicle ( "RV-ZJ-42" ); vehicles [ 2 ] = new Bike ( 7 ); vehicles [ 3 ] = new Bus ( "AB-CD-01", 40 ); for ( int i=0; i<4; i++ ) vehicles [ i ] -> info ( cout ); geeft ( pointer: dynamisch bepaald ) A motor vehicle with reg no LS-HL-97 A motor vehicle with reg no RV-ZJ-42 A bike with 7 gears A bus with reg no AB-CD-01 and 40 seats 13 gebruik subklassen 3 void main() nu gebruik... ik pointers Vehicle *vehicles[4]; vehicles[0] = &car; vehicles[1] = &mv; vehicles[2] = &bike; bepaal dynamisch vehicles[3] = &bus; welke info for ( int i=0; i<4; i++ ) gebruikt wordt vehicles [ i ] -> info ( cout ); geeft (pointer: dynamisch bepaald) A motor vehicle with reg no LS-HL-97 A motor vehicle with reg no RV-ZJ-42 A bike with 7 gears A bus with reg no AB-CD-01 and 40 seats 14 dynamic binding void print ( Vehicle& v ) // & zorgt voor dynamic binding v.info ( cout ); void main ( ) Bike bike ( 7 ); Vehicle v; v = bike; v.info ( cout ); Vehicle *vp; vp = &bike; vp -> info ( cout ); print ( bike ); geeft: A vehicle A bike with 7 gears A bike with 7 gears toekenning subklasse aan basisklasse // direct gebruik: statisch // pointer: dynamisch // call-by-reference: dynamisch 15 OO en events de wereld bestaat uit een aantal objecten objecten zijn tevreden wezens doen zelf niets spontaan op verzoek van de 'buitenwereld', een event, veranderen ze hun toestand eventueel veroorzaken ze events voor andere objecten event afhandelen = methode uitvoeren als methode is uitgevoerd gaan ze weer rusten 16 4

5 GUI Grafical User Interface events for the GUI een event is iedere voor het programma van buiten komende gebeurtenis toets ingedrukt, nog steeds ingedrukt, toets los muis knop in, nog steeds in, los, bewogen, drag window wordt (weer) zichtbaar, is verschoven wekker loopt af element van menu geselecteerd close box van window geklikt er is helemaal niets gebeurt (null-event) wat ziet je programma van events het GUI-systeem doet veel werk voor je er is een klasse GUI die het basis werk doet maak zelf een subklasse van de klasse GUI jij moet handlers (functies/methoden) schrijven die de events afhandelen het GUI-systeem zorgt voor koppeling events aan handlers programma hoeft zich dus nooit af te vragen of er n event is en welke handler dan gebruikt moet worden de GUI_kernel waarom een GUI_Kernel er zijn heelveel details te regelen in een GUI de ervaren programmeur wil dit kunnen er is daarom een ingewikkeld interface als beginner wil je niet alle details de GUI_kernel biedt een simpel interface lang niet alles kan, maar wat kan gaat simpel(er)

6 ontwerp GUI_kernel de class GUI regelt het gedrag van de GUI de event handlers zijn methoden binnen deze class een specifieke GUI is een subclass van GUI definieert handlers (opnieuw) dynamic binding van methoden beperkingen er is maar een window de GUI klasse class GUI GUI ( GSIZE, char *title ); void Run ( WINARGS winargs ); void Run ( Menu& menu, WINARGS winargs ); virtual void Window ( const RECT& area ) virtual void Mouse ( const MOUSEINFO& mouse_info ) virtual void Keyboard ( const KEYINFO& key_info ) virtual void Timer ( const int dt ) friend class Canvas;... private:... handlers die je kunt herdefiniëren het canvas al het tekenen binnen het window op het canvas class Canvas friend class GUI; Canvas ( GUI &gui ); void setpencolour ( RGBCOLOUR ); void setpenpos ( GPOINT ); void togglexormode ( ); void drawpoint ( ); void drawlineto ( GPOINT ); void drawrectangle ( GPOINT, GPOINT ); void drawtext ( const char *s ); void drawoval ( GPOINT, GPOINT ); void drawpolygon ( GPOINT points [], int size ); void fillrectangle ( GPOINT, GPOINT ); void filloval ( GPOINT, GPOINT ); void fillpolygon ( GPOINT points [], int size ); #include "gui_kernel.h" const int SreenWidth = 300; const int ScreenHight = 200; my first GUI program class mygui : public GUI mygui () : GUI(GSIZE(SreenWidth,ScreenHight),"my first GUI") void Window ( const RECT& area ); ; void mygui :: Window ( const RECT& area ) Canvas canvas ( *this ); canvas. setpencolour ( RedRGB ); canvas. setpenpos ( GPOINT ( 30, 30 )); canvas. drawtext ( "Hallo Nijmegen" ); private:

7 my first GUI program 2 my first GUI program slot hoe maken we een GUI object maak gui-object binnen de try om fouten te vangen dus geen globaal object gebruik functie met static lokaal object schrijf thegui( ) i.p.v. thegui mygui& thegui() static mygui mg; return mg; 25 gebruik exceptions om fouten af te handelen try en catch zorgen hiervoor gebruik copy/paste programming int WINAPI WinMain (HINSTANCE hi, HINSTANCE hpi, PSTR cmdline, int cmdshow) try thegui(). Run (WINARGS(hi, hpi, cmdline, cmdshow)); catch ( const GUIException& ge ) ge.report (); return 0; WinMain i.p.v. main alleen gebruikt als er binnen de try een exception komt 26 window events menu de handler voor window events: void mygui :: Window ( const RECT& area ) Canvas canvas ( *this ); canvas.setpencolour ( RedRGB ); canvas.setpenpos ( GPOINT ( 30, 30 )); canvas.drawtext ( "Hallo Nijmegen" ); wordt aangeroepen bij: maken van window opnieuw zichtbaar worden van window area geeft deel aan dat zichtbaar wordt eenvoudige oplossing: herteken alles 27 int WINAPI WinMain (HINSTANCE hi, HINSTANCE hpi, PSTR cmdline, int cmdshow) Menu menu ( "File" ); menu. add ( "Start", start ). add ( ). add ("Stop", stop ); try thegui().run ( menu, catch (const GUIException& ge) ge.report (); return 0; hang handler aan menu voeg menu toe aan gui WINARGS(hi, hpi, cmdline, cmdshow)); menu geeft dus geen window events! 28 7

8 void start ( ) menu functies // the event handler Canvas canvas ( thegui ( ) ); // wil ook wat tekenen canvas. setpencolour ( BlueRGB ); canvas. setpenpos ( GPOINT ( 30, 60 )); canvas. drawtext ( "Nu aan het werk" ); void stop ( ) thegui ( ). Stop ( ); 29 toetsenbord structuur bevat alle informatie over toets struct KEYINFO bool isascii; // TRUE iff keycode is ASCII int keycode; ; voeg handler toe aan mygui class mygui : public GUI mygui () : GUI(GSIZE(SreenWidth,ScreenHight),"my first GUI") void Window ( const RECT& area ); void Keyboard ( const KEYINFO& info ); ; subklasse kan nieuwe definitie maken 30 een simpele key handler tekenen in XOR q -> quit s -> start alle andere toetsen: doe niets void mygui :: Keyboard ( const KEYINFO& key ) if ( key. isascii ) switch ( key. keycode ) case 'q': stop ( ) ; return; case 's': start ( ) ; return; default: return; voor alle kleuren c en n: c, n. XOR c n c c, n. XOR (XOR c n) n = c Dat wil zeggen als: als je in xor-mode tekent zie je het altijd als je 2 keer het zelfde tekent is het weer weg een heel oude truc waar Microsoft patent op heeft gekregen natuurlijk trekt niemand zich hier wat van aan

9 de mouse state bevat informatie over linker knop en positie enum MouseState MouseDown // The mouse button goes down, MouseTrack // The mouse button is still down, MouseUp // The mouse button goes up ; struct MOUSEINFO MouseState mousestate; // State of the mouse GPOINT mousepos; // Current mouse position ; 33 muis void drawline ( GPOINT& begin, GPOINT& eind, Canvas& canvas ) canvas. setpenpos ( begin ); canvas. drawlineto ( eind ); void mygui :: Mouse ( const MOUSEINFO& mouse ) Canvas canvas ( *this ); GPOINT p = mouse. mousepos; switch ( mouse. mousestate ) gedefinieerd in case MouseDown: klasse mygui begin = eind = p; canvas. setpencolour ( BlackRGB ); canvas. togglexormode( ); drawline ( begin, eind, canvas ); canvas. togglexormode ( ); break; 34 muis part 2 muis part 3 muis bewegen met knop ingedrukt oude lijn wegpoetsen (xor tekenen) nieuwe lijn tekenen case MouseTrack: canvas. setpencolour ( BlackRGB ); canvas. togglexormode ( ); drawline ( begin, eind, canvas ); drawline ( begin, p, canvas ); canvas. togglexormode ( ); eind = p; break; beter: doe alleen wat als p eind (muis echt bewogen) 35 loslaten van muis knop: oude lijn wegpoetsen (xor tekenen) nieuwe lijn tekenen in rood case MouseUp: canvas.setpencolour ( BlackRGB ); canvas. togglexormode ( ); drawline ( begin, eind, canvas ); canvas.togglexormode ( ); canvas. setpencolour ( RedRGB ); drawline ( begin, p, canvas ); eind = p; break; overige events worden al weggefilterd 36 9

10 timer events zet een wekker (tijd in ms) const int ticks = 1000; wekker loopt nooit te vroeg af wekker kan iets te laat aflopen echt verstreken tijd (in ms) als argument voorbeeld timer handler void mygui :: Timer ( const int dt ) int tpm = 60 * ticks ; // aantal tikken per minuut tikken = ( tikken + dt ) % tpm; GPOINT eind ( mx + r * sin ( pi * 2 * tikken / tpm ), my r * cos ( pi * 2 * tikken / tpm )); class mygui : public GUI int tikken; void Timer ( const int dt );... ; 37 Canvas canvas ( *this ); canvas. setpencolour ( RedRGB ); canvas. filloval ( lo, rb ); canvas. setpencolour ( WhiteRGB ); drawline ( centrum, eind, canvas ); 38 timer aanzetten standaard staat de wekker uit void start ( ) thegui ( ). starttimer ( ticks ); gebruik via menu (of toetsenbord, of...): int WINAPI WinMain (HINSTANCE h, HINSTANCE p, PSTR l, int c) Menu menu ( "File" ); menu. add ( "Start", start ). add( ). add ( "Quit", stop ); try thegui ( ). Run (menu, WINARGS (h, p, l, c)); catch ( const GUIException& ge ) ge. report (); return 0; eenmaal gestart blijf de timer steeds aflopen 39 de GUI valkuil met een GUI zijn er 2 waarheden: wat de gebruiker ziet op het scherm de inwendige toestand van het programma het is de taak van de programmeur om dit te laten sporen bij de voorbeelden wordt alleen de eerste tekst getekend bij een window event! voor een echt programma moet je alle getekende lijnen onthouden je wil ook lijnen kunnen selecteren en weggooien meng rekenen en tekenen niet! maak een klein en duidelijk interface tussen de GUI en de logica van het programma (voor spel, database,..) 40 10

11 algemeen schema GUI programma definieer je eigen subklasse van GUI bevat handlers voor: (maak alleen wat nodig is, rest erf je van GUI ) window mouse toetenbord timer state maak één instantie van die subklasse en start interactie via methode run hier voeg je menu's toe handlers doen het werk, aanroepen van handlers gebeurt voor je Wat hebben we gedaan dictaat: H 15, bekijk voorbeelden boek:... GUI is gebaseerd op objecten programmeur schrijft handlers voor events systeem zorgt voor aanroepen handlers systeem zorgt voor standaard dingen menus tekenen window resizen window buttons filteren events maak een Windows Application geen Console Application! gebruik winmain i.p.v. main zorg dat er maximaal één ( 1 ) canvas is

datastructuren college 13

datastructuren college 13 datastructuren college 13 GUI deel 2 1 events for the GUI een event is iedere voor het programma van buiten komende gebeurtenis muis knop in, nog steeds in, los, bewogen... het GUI-systeem doet veel werk

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

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

Nadere informatie

templates: het probleem recursieve datastructuren college 10 gebruik template wat zouden we willen templates exceptions type-parameters!

templates: het probleem recursieve datastructuren college 10 gebruik template wat zouden we willen templates exceptions type-parameters! templates: het probleem recursieve datastructuren college 10 templates exceptions typedef... El; class Knoop El head; Knoop* tail; ; void swap ( El& x, El& y ) const EL t = x; x = y; y = t; er is maar

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

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

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

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

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

C++ C++ als een verbetering van C. Abstracte datatypen met classes. Constructoren en destructoren. Subklassen. binding van functies

C++ C++ als een verbetering van C. Abstracte datatypen met classes. Constructoren en destructoren. Subklassen. binding van functies C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1 Commentaar In C: /* Deze functie berekent de omtrek van een cirkel */ float

Nadere informatie

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;

public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B; Beschouw bijvoorbeeld de twee onderstaande klassen, waarvan de attributen en eigenschappen geannoteerd zijn met bijkomende XML-annotaties: using System ; using System. Xml ; using System. Xml. S e r i

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

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )

Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { Form scherm; declaratie en toekenning van een variabele met type Form scherm = new Form( );

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

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

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

Introductie in C++ Jan van Rijn. September 2013

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)

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

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2 Modelleren Werkelijkheid Modelleren Modeleren Waarvan maken we een model?!analyse " Maak een model van de te automatiseren werkelijkheid of van het op te lossen probleem! Domeinkennis = structuur! Functionele

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

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

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

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

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

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

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.

Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing. irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.

Nadere informatie

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak); Vaknaam: Programmeren I (Java) - Tentamen Module: 2 Datum/Tijd: 17 mrt 2015 / 18.30 20:30 Richting: ICT Code: IC011 Docent: E. Lieuw Boeken en aantekeningen NIET toegestaan. Kladpapier is wel toegestaan.

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Datastructuren college 10

Datastructuren college 10 we hadden Backtracking verbetering i i Datastructuren college 0 0: : : 0: : : P r r r r r b r b r P r r r b r b r backtracking we hoeven vaak de kandidaat niet helemaal af te maken om hem te kunnen verwerpen

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

Wat is een grafische gebruikersinterface (GUI)?

Wat is een grafische gebruikersinterface (GUI)? Wat is een grafische gebruikersinterface (GUI)? GUI is een Engelse afkorting voor Graphical User Interface, oftewel grafische gebruikersinterface. Het is de term voor het bedieningspaneel van een computerprogramma.

Nadere informatie

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, 17 20 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers

Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 1 Inhoud Klassen & objecten, overerving, abstracte klassen, debuggen, interfaces, formulieren, polymorfie, statische methoden, event-handlers 2 Geluidsbronnen simulator, deel 2 Inleiding De weergave versnellen

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

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 1 februari 2019, 11.00 13.00 uur Voor de meerkeuzevragen hebben we verschillende versies. Dit zijn de juiste antwoorden per versie.

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 9 november 2018, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp

Nadere informatie

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur

Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, uur Uitwerking Tentamen Modelleren en Programmeren - versie 1 Woensdag 1 februari 2017, 17 20 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,

Nadere informatie

Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( )

Activity. Bij het starten van een app: Operating system maakt een Activity -object aan. en neemt dat onderhanden met de methode OnCreate( ) Activity Bij het starten van een app: Operating system maakt een Activity -object aan en neemt dat onderhanden met de methode OnCreate( ) Klasse uit library Android.App Methode uit klasse Activity eigen

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal

Nadere informatie

int getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers);

int getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers); bestand voertuig.h biz. 1 van 2 #ifndef VOERTUIG H #define VOERTUIG H #include using std::string; class Voertuig { public: Voertuig(); Voertuig(const string& inschrijvingsnumrner, const string&

Nadere informatie

Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad

Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar 2006-2007 23 Januari, 2007 **BELANGRIJK** : Schrijf je naam onderaan dit blad Leg volgende 3 begrippen kort en bondig uit : a. Concurrent

Nadere informatie

Veel succes! 1. Gegeven is de volgende klasse:

Veel succes! 1. Gegeven is de volgende klasse: Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen

Nadere informatie

Programmeren in C# Interfaces. Hoofdstuk 23

Programmeren in C# Interfaces. Hoofdstuk 23 Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten

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

Programmeren in C# Samenvatting van C#

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,

Nadere informatie

Cursus Algoritmiek - - najaar 2005

Cursus Algoritmiek - - najaar 2005 Cursus Algoritmiek - - najaar 2005 Practicumopdracht 10 : Verkeerslichten-simulator N.B. Voordat je deze opdracht maakt, moet je eerst het elektronische cursusevaluatieformulier, dat je op de cursus-web-pagina

Nadere informatie

Grafisch programmeren met GTK

Grafisch programmeren met GTK LinuxFocus article number 295 http://linuxfocus.org Grafisch programmeren met GTK door Özcan Güngör Over de auteur: Sinds 1997 gebruik ik Linux. Vrijheid, flexibiliteit en

Nadere informatie

Ontwerp van Informatiesystemen

Ontwerp van Informatiesystemen 1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents

Nadere informatie

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973 Mobiel programmeren Mobilofoon 1960 Nokia 3310 2000 Apple iphone 2007 met ios Motorola Dyna-Tac 1973 Samsung S7 2016 met Android Programmeertalen Fortran Basic C++ C# Android Algol C Java... 1950 1960

Nadere informatie

Datastructuren Werkcollege Intro

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

Nadere informatie

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, 11.00-13.00 uur 1. Een klasse is niet: (a) het type van een object (b) een groepje methoden (c) een groepje variabelen

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING DIAGNOSTISCHE TOETS Softwaresystemen datum: Donderdag van Week 7 UITWERKING Deze diagnostische toets bevat vragen over excepties en concurrency. Beantwoord de vragen zo goed mogelijk in 30 minuten Bespreek

Nadere informatie

DOMjudge teamhandleiding

DOMjudge teamhandleiding judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat

Nadere informatie

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, 8.30-10.30 uur 1. Een Intent-object wordt gebruikt voor communicatie (a) van een Activity naar een bijbehorende View

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

Inleiding C++ Coding Conventions

Inleiding C++ Coding Conventions Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,

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

VI. Klassen en objecten

VI. Klassen en objecten VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten

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

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

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

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

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

Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur

Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, uur Tweede deeltentamen Imperatief programmeren versie 1 Vrijdag 20 oktober 2017, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

software constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies

software constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies software constructie recursieve datastructuren college 15 software engineering highlights 1 de software bestaat uiteindelijk uit datatypen functies verbindingen geven gebruik aan main is de top van het

Nadere informatie

Oefeningen Jaarproject I

Oefeningen Jaarproject I Oefeningen Jaarproject I Deze oefeningenreeks behandelt de grafische Scheme bibliotheek die jullie mogen gebruiken voor de implementatie van het Pacman spel. De bibliotheek i is een evaluator voor Scheme

Nadere informatie

Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven.

Om de libraries te kunnen gebruiken, moet de programmeur (een deel van) zijn programma in C/C++ schrijven. 1 Inleiding tot.net Software werd en wordt meestal geschreven in C of C++. De broncode van een C/C++ programma wordt dan gecompileerd naar machine code, die eventueel nog gelinkt wordt met machine code

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn. Derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur Naam: Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 14 punten op, opgave 2 levert 12 punten op, en opgave

Nadere informatie

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn. Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 11 november 2016, 8.30 10.30 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

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

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 10 november 2017, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

b.text = "Rol!"; b.location = new Point(100, 0); b.click += this.rol; this.paint += this.teken;

b.text = Rol!; b.location = new Point(100, 0); b.click += this.rol; this.paint += this.teken; Tweede deeltentamen Imperatief programmeren Vrijdag 18 oktober 2013, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde bladen.

Nadere informatie

Derde deeltentamen Gameprogrammeren Vrijdag 8 november 2013, uur

Derde deeltentamen Gameprogrammeren Vrijdag 8 november 2013, uur Naam: Derde deeltentamen Gameprogrammeren Vrijdag 8 november 2013, 8.30-10.30 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 10 punten op, opgave 2 levert 10 punten op, en opgave

Nadere informatie

Abstracte klassen & Interfaces

Abstracte klassen & Interfaces Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.

Nadere informatie

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Aanvullende

Nadere informatie

Een fragment wordt afgeleid van de basis klasse "Fragment".

Een fragment wordt afgeleid van de basis klasse Fragment. Android fragmenten 1/5 Fragmenten Klasse Een fragment wordt afgeleid van de basis klasse "Fragment". package com.android.cursustekst; import java.text.simpledateformat; import java.util.arraylist; import

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89. Inhoud leereenheid 7c JavaScript: Objecten en functies Introductie 59 Leerkern 60 1 Functies 60 1.1 Syntax - samenvatting 60 1.2 Functies definiëren 61 1.3 Functie als parameter (facultatief) 64 1.4 Functie

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

Klassen. Hoofdstuk Klassen

Klassen. Hoofdstuk Klassen 212 Hoofdstuk 12 Klassen blz. 213 blz. 214 12.1 Klassen Een klasse is een groepje methoden. Dat hebben we in de programma s tot nu toe wel gezien: we definieerden steeds een of meerdere klassen (in ieder

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, uur

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, uur Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 19 oktober 2012, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een of twee zinnen per onderdeel

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 21 oktober 2011, uur

Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 21 oktober 2011, uur Uitwerking Tweede deeltentamen Imperatief programmeren Vrijdag 21 oktober 2011, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een of twee zinnen per onderdeel

Nadere informatie

Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur

Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur Naam: Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, 11.00-13.00 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 20 punten op, opgave 2 levert 10 punten op, en opgave

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

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

Programmeren in C# Klassen schrijven

Programmeren in C# Klassen schrijven Programmeren in C# Klassen schrijven In dit hoofdstuk Klassestructuur Private variabelen Publieke methoden (public) Properties Constructormethodes Private methodes (private) Static methodes en properties

Nadere informatie

Opdracht 7a. Applicatiebouw 2014/2015

Opdracht 7a. Applicatiebouw 2014/2015 Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang

Nadere informatie

Uitwerkingen aanvullende toets Gameprogrammeren (INFOB1GP) Vrijdag 4 januari 2013, uur

Uitwerkingen aanvullende toets Gameprogrammeren (INFOB1GP) Vrijdag 4 januari 2013, uur Uitwerkingen aanvullende toets Gameprogrammeren (INFOB1GP) Vrijdag 4 januari 2013, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal vragen. Houd het antwoord kort: één of twee zinnen per onderdeel

Nadere informatie

Modelleren & Programmeren. Jeroen Fokker

Modelleren & Programmeren. Jeroen Fokker Modelleren & Programmeren Jeroen Fokker Wat heb je nodig? Collegediktaat kopen bij A-Eskwadraat (BBG-238) of zelf downloaden en uitprinten www.cs.uu.nl / docs / vakken / KI1V13009 Solis-id met password

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

Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur

Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, uur Naam: Eerste deeltentamen Gameprogrammeren Vrijdag 25 september 2015, 11.00-13.00 uur Studentnummer: Het tentamen bestaat uit 4 opgaven. Elke opgave levert 10 punten op. Je cijfer is het totaal aantal

Nadere informatie

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) LES 3 De programma s die we in Les 1 en Les 2 gezien hebben, zagen er niet erg mooi uit. In deze les gaan we er onder andere naar kijken, hoe we de programma

Nadere informatie

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Programmeren 1 23 januari 2013 Prof. T. Schrijvers Programmeren 1 23 januari 2013 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet

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

Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest.

Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest. WAT IS EEN UNIT TEST? Een unit test is een test om de functionaliteit van stukken code te controleren. Een goede unit test waarborgt een consistente werking van een klein onderdeel (een unit ) van de broncode.

Nadere informatie