Het gebruik van DirectPlay bij OGO 2.3

Maat: px
Weergave met pagina beginnen:

Download "Het gebruik van DirectPlay bij OGO 2.3"

Transcriptie

1 rh271 0 Het gebruik van DirectPlay bij OGO Inleiding De objectklasse DXPlay biedt primitieven waarmee een collectie processen een (zogenaamde) groep kunnen vormen. Ieder proces dat aldus tot een groep behoort kan vervolgens berichten versturen naar ieder van de andere processen in dezelfde groep. Communicatie tussen de processen in een groep verloopt dus paarsgewijs. De samenstelling van een groep staat aan alle processen in de groep ter beschikking. De processen kunnen zich in verschillende machines bevinden; deze machines zijn dan met elkaar verbonden via een netwerk. DXPlay verzorgt de communicatie via dit netwerk. In het vervolg gaan we er van uit dat ieder proces zich in een eigen machine bevindt. Voor het gebruik van DXPlay volstaat, per groepslid, het gebruik van slechts één object uit deze klasse. Hiertoe is het voldoende één variabele van type DXPlay in het programma te declareren. In het vervolg noemen we deze variabele DXGroup. Dit is een lokale variabele van het proces: ieder proces in de groep heeft dus een eigen variabele DXGroup, waarin voor het proces de samenstelling van de groep wordt geadministreerd. 1 Protocol Ieder proces doorloopt drie fasen: toetreding tot de groep, het eigenlijke spel waarin de processen in de groep met elkaar communiceren, en uittreding uit de groep. Het (eigenlijke) spel kan pas nen na eindiging van de toetredingsfase. Omdat de onderliggende netwerkcommunicatie asynchroon is, is eindiging van de toetredingsfase echter niet eenvoudig detecteerbaar. Hiermee kan op allerlei manieren rekening worden gehouden: 0. Het van het spel wordt in elk proces gesynchoniseerd door middel van een dialoogje met de externe gebruiker van (de machine van) het proces. De gebruiker sluit dit dialoogje pas als hem duidelijk is dat alle processen zijn toegetreden. Een mogelijke variant hierop is dat zo n dialoogje met slechts één proces plaatsvindt en dat de andere processen een speciaal start -bericht van dit ene proces afwachten. 1. Via een openingsdialoogje wordt aan elk proces meegedeeld hoe groot

2 rh271 1 de groep zal zijn; het proces t nu pas aan het spel als de geadministreerde groep de aldus ingegeven omvang heeft. Het als constante in het programma opnemen van de groepsgrootte is niet wenselijk: het feitelijke aantal spelers moet variabel zijn. 2. Het eigenlijke spel is zo ingericht dat er tijdens het spel nog processen dat is: spelers kunnen toetreden. Dit is bepaald niet gemakkelijk correct te programmeren en wordt daarom afgeraden. De beschrijving in de volgende paragrafen is gebaseerd op het gebruik van fasesynchronisatie en dus op de veronderstelling dat de samenstelling van de groep tijdens het eigenlijke spel niet wordt gewijzigd. 2 Groepsadministratie De objectvariabele DXGroup heeft een attribuut Players waarvan de waarde een lijst van procesbeschrijvingen is. (In het jargon van DirectPlay heten de processen die tot één groep behoren players.) De lijst Players representeert derhalve de hele groep: ieder proces in de groep komt er één keer in voor, ook het proces waartoe DXGroup zelf behoort. Ieder proces in de groep heeft een variabele DXGroup en dus heeft ieder proces in de groep een groepslijst DXGroup.Players. De volgorde waarin de processen in deze lijst voorkomen is niet gespecificeerd; daarom mag niet worden aangenomen dat deze volgorde in alle processen dezelfde zou zijn! De groepslijst Players heeft een integer attribuut Count dat de lengte van de lijst (en dus de omvang van de groep) weergeeft. Verder zijn de elementen van de lijst genummerd vanaf 0 tot en zonder Count : aldus is Players[ i] de beschrijving van het groepslid op positie i in de lijst, voor 0 i<count. (Deze nummering vormt zo dus een lokale naamgeving die per proces anders kan zijn! van de groepsleden.) De elementen van de lijst Players zijn objecten van type TDXPlayPlayer. Ieder object van dit type heeft een attribuut ID dat het door het object voorgestelde proces identificeert. Dit wordt uitsluitend gebruikt om de bestemming van een te verzenden bericht aan te geven; bij ontvangst van berichten wordt de afzender weergegeven door een object van type TDXPlayPlayer 0. Verder heeft zo n object een attribuut Name, vantype string, dat bij het toetreden tot de groep wordt geïnitialiseerd met de in de openingsdialoog zie volgende paragraaf opgegeven (externe) spelersnaam. Het attribuut 0 Hoezo, inconsequent?

3 rh271 2 Name kan, bijvoorbeeld, worden gebruikt om de spelersnaam op het scherm af te beelden. Het versturen van een bericht naar het groepslid met lokaal nummer i, met 0 i < DXGroup.Players.Count, komt derhalve neer op het versturen van een bericht naar het proces DXGroup.Players[ i].id. 3 Toetreding Ten behoeve van de toetreding heeft DXGroup als attribuut een procedure 1 Open en een event genaamd OnOpen. De procedure Open heeft geen parameters. Na uitvoering van DXGroup.Open maakt het proces deel uit van de groep en is de verwerking hiervan in de groepsadministratie van alle groepsleden in gang gezet; deze verwerking hoeft op zo n moment echter nog niet te zijn voltooid. De voltooiing van (de administratieve afwikkeling van) de toetreding wordt aan het toegetreden proces teruggemeld via het event OnOpen. Zodra dit event optreedt is de groepsadministratie van het toegetreden proces geïnitialiseerd. Voor het aan de andere groepsleden signaleren van een toetreding is er een event OnAddPlayer. De betekenis hiervan is dat er een proces tot de groep is toegetreden. In de aan dit event gebonden afhandelingsprocedure representeert de parameter Player het nieuw toegetreden proces. Tevens geldt dat, ten tijde van het optreden van de event OnAddPlayer, de waarde van deze parameter al in de groepsadministratie DXGroup.Players is opgenomen. Dit behoeft men dus niet zelf te programmeren! Dit event wordt getriggerd bij alle leden van de groep, het zojuist toegetreden proces incluis. Het uiteindelijke effect van DXGroup.Open is dus dat het nieuwe lid in de groepsadministratie van alle groepsleden voorkomt, dat bij alle groepsleden het event OnAddPlayer is getriggerd en dat bij het nieuwe groepslid het event OnOpen is getriggerd. Als deze events worden gebruikt om gegevens over de groepsleden te verzamelen, dient men er dus rekening mee te worden gehouden dat bij het nieuwe groepslid beide events worden getriggerd, in een niet nader gespecificeerde volgorde. De uitvoering van DXGroup.Open veroorzaakt ook een openingsdialoog met de gebruiker waarin het te gebruiken netwerkprotocol kan worden ingesteld altijd IPX en waarin de naam van de speler kan worden ingevoerd; deze naam wordt toegekend aan het Name -attribuut van alle objecten die deze speler representeren. 1 in OO-jargon: methode

4 rh Representatie van berichten Een lid van de groep kan berichten zenden aan elk lid van de groep. Vaak zal het voorkomen dat er berichten van verschillende typen worden gebruikt. Om berichten aan de ontvangstzijde naar type te kunnen onderscheiden biedt DirectPlay een (primitieve) faciliteit. In het programma kunnen, zoveel als wenselijk, definities voor berichttypen worden opgenomen. Om genoemde faciliteit te kunnen gebruiken moet elk berichttype een recordtype zijn waarvan het eerste veld type DWORD heeft. Het (Delphi-)type DWORD kan geheeltallige waarden bevatten (en heeft de eigenschap dat het geheugenbeslag ervan in alle machines binnen de groep gelijk is, zodat ondubbelzinnige communicatie mogelijk is). Dit eerste veld van zo n record wordt gebruikt om het berichttype aan te geven; het ligt dan ook voor de hand dit eerste veld MessType (of iets dergelijks) te dopen. Voor het coderen van berichttypen is oplopende nummering het gemakkelijkst; via een constantendefinitie kan men deze nummers aan namen binden. Met het oog op de snelheid van berichtenverzending wordt aanbevolen de gebruikte berichttypen redelijk klein te houden. voorbeeld: Hier zijn definities voor vier typen berichten, voor het verzenden van een leeg bericht, een enkel geheel getal, twee gehele getallen, en een rijtje van maximaal 40 characters: const EMP MESS = 0; INT MESS = 1; INT2 MESS = 2; STR MESS = 3; ML = 40; type MyString = array [0..ML-1] of char; TDXEmpMess = record MessType: DWORD; TDXIntMess = record MessType: DWORD; Value: Integer; TDXInt2Mess = record MessType: DWORD; Val0,Val1: Integer;

5 rh271 4 TDXStrMess = record MessType: DWORD; Len: Integer; Data: MyString; Bij berichten van type TDXEmpMess wordt het veld MessType altijd geïnitialiseerd met de constante EMP MESS, bij type TDXIntMess wordt altijd INT MESS gebruikt, enzovoort. Een invariant van alle berichten van type TDXStrMess zal vermoedelijk zijn: 0 Len ML. opmerking: Delphi kent een standaard datatype string ; omdat dit is geïmplementeerd met behulp van pointers kunnen velden van type string echter niet in berichttypen worden gebruikt: het verzenden van pointers is zinloos. 5 Zenden De DirectPlay procedures voor zenden en ontvangen van berichten hebben een parameter van het type pointer om berichten over te dragen. Daarom moeten in de programma s waarin deze zend- en ontvangprocedures worden gebruikt pointervariabelen worden gedeclareerd. Voor verzending van berichten kan hiertoe voor ieder berichttype een pointervariabele van overeenkomstig type worden gebruikt. Bij ontvangst van een bericht is niet (syntactisch) bekend welk berichttype het zal hebben; hiervoor wordt het algemene type Pointer gebruikt en de (al genoemde) DirectPlay faciliteit om berichttypen te onderscheiden. Dit wordt met voorbeelden verduidelijkt. voorbeeld: Voor sommige van de in het vorige voorbeeld opgevoerde berichttypen geven we hier een procedure om een bericht van zo n type aan een proces dest, van type TDXPlayPlayer, te zenden. Om zo n procedure toe te passen op element nummer i van de groepslijst vult men voor dest dus DXGroup.Players[ i] in. De Delphi-procedure GetMem is vergelijkbaar met new in standaard Pascal, zij het dat GetMem een extra parameter voor de afmeting van de te creëren variabele heeft; met behulp van de standaardfunctie SizeOf kan deze afmeting uit het berichttype worden bepaald. De Delphi-procedure FreeMem is de inverse van GetMem.

6 rh271 5 procedure SendEmpty(dest: TDXPlayPlayer); { send an empty message to player "dest" } var mess: ^TDXEmpMess; size: Integer; size := SizeOf(TDXEmpMess) ; GetMem(mess,size) ; try mess^.messtype := EMP MESS ; DXGroup.SendMessage(dest.ID, mess, size) finally FreeMem(mess) end end {SendEmpty}; procedure SendIntegers(x,y: Integer; dest: TDXPlayPlayer); { send "x" and "y" to player "dest" } var mess: ^TDXInt2Mess; size: Integer; size := SizeOf(TDXInt2Mess) ; GetMem(mess,size) ; try mess^.messtype := INT2 MESS ; mess^.val0 := x ; mess^.val1 := y ; DXGroup.SendMessage(dest.ID, mess, size) finally FreeMem(mess) end end {SendIntegers}; procedure SendMyString(n: Integer; s: MyString; dest: TDXPlayPlayer); { send "s[0..n)" to player "dest" } { PRE: 0 <= n <= ML } var mess: ^TDXStrMess; size: Integer; size := SizeOf(TDXStrMess) ; GetMem(mess,size) ; try mess^.messtype := STR MESS ; mess^.len := n ; mess^.data := s ; DXGroup.SendMessage(dest.ID, mess, size) finally FreeMem(mess) end end {SendMyString};

7 rh Ontvangen Bij aankomst van een bericht wordt het event OnMessage getriggerd en wordt de hieraan gebonden procedure uitgevoerd. Als er meerdere berichttypen worden gebruikt dient in deze procedure het gevalsonderscheid naar berichttypen te worden gemaakt. (Zelfs als er maar één berichttype wordt gebruikt kost het weinig om dit ene type te controleren!) De afhandelingsprocedure voor OnMessage heeft een parameter van het algemene en abstracte type Pointer, die het ontvangen bericht voorstelt. Om dit bericht correct te interpreteren moet het bericht worden opgevat als een bericht van het juiste type. Als mess zo n pointer is, is messˆ het bericht zelf; door er de naam van het betreffende berichttype op toe te passen, als ware het een functie, wordt dit bericht verondersteld van dat type te zijn 2 en kunnen de bij dat type behorende operaties worden toegepast. voorbeeld: Door TDXEmpMess(messˆ) wordt messˆ opgevat als een leeg bericht, door TDXStrMess(messˆ) wordt messˆ opgevat als een stringbericht, enzovoort. Deze manier van type-interpretatie is alleen correct als het bericht ook daadwerkelijk van het juiste type is. Om dit te garanderen moet het eerste recordveld, dat immers het berichttype bevat, worden geïnspecteerd. Hiertoe bevat DXPlay een functie DXPlayMessageType die, bij toepassing op een pointer naar enig bericht, het type van dat bericht oplevert. Als mess een pointer naar een bericht is, is DXPlayMessageType(mess) de waarde messˆ.messtype, dat is, het type van het bericht messˆ. (Dit vereist natuurlijk wel dat alle gebruikte berichttypen een eerste veld hebben dat het berichttype bevat.) voorbeeld: Het ligt voor de hand dat we voor elk mogelijk berichttype een procedure schrijven voor de afhandeling van ontvangen berichten van dat type. Als we dat doen bestaat de algemene, aan het event OnMessage gebonden, afhandelingsprocedure slechts uit een gevalsonderscheid naar berichttypen, plus aanroepen van de betreffende procedures. Voor de berichttypen uit de vorige voorbeelden zou de afhandelingsprocedure er zó uit kunnen zien de parameter sdr kan worden genegeerd; de parameter size lijkt ook overbodig : 2 Dit staat bekend als type casting. Deze programmeerpraktijk is dubieus maar, mits zorgvuldig toegepast, wel efficiënt.

8 rh271 7 procedure AnyMessage(sdr: TObject; sndr: TDXPlayPlayer; mess: Pointer; size: Integer); var s: MyString; x,y,n: Integer; case DXPlayMessageType(mess) of EMP MESS: ReceiveEmpty(sndr) INT MESS: x := TDXIntMess(mess^).Value ; ReceiveInteger(sndr, x) INT2 MESS: x := TDXInt2Mess(mess^).Val0 ; y := TDXInt2Mess(mess^).Val1 ; ReceiveIntegers(sndr, x, y) STR MESS: n := TDXStrMess(mess^).Len ; s := TDXStrMess(mess^).Data ; ReceiveMyString(sndr, n, s) else { something is wrong: }... end {case} end {AnyMessage}; Hierbij zijn de procedures waarvan de naam t met Receive dus de voor alle berichttypen voorziene afhandelingsprocedures. Merk op dat het terugzenden van een leeg bericht, bij wijze van ontvangstbevestiging, eenvoudig kan worden toegevoegd als een aanroep SendEmpty(sndr), waar dat maar gewenst is. 7 Uittreding Na beëindiging van het spel treedt een proces uit de groep door aanroep van de procedure DXGroup.Close. Dit leidt uiteindelijk tot het triggeren van een event OnClose bij het uitgetreden proces en leidt bij elk van de overblijvende groepsleden tot het triggeren van een event OnDeletePlayer. Deze events zijn alleen van belang als processen tijdens het eigenlijke spel kunnen uittreden.

9 rh271 8 Als het spel voor alle groepsleden tegelijkertijd eindigt hoeft voor deze events niet in afhandelingsprocedures te worden voorzien. 8 Overige attributen De objectvariabele DXGroup heeft nog een attribuut LocalPlayer, behorend tot type TDXPlayPlayer, dat het proces representeert waartoe DXGroup behoort. Ieder object van type TDXPlayPlayer heeft nog een boolean attribuut RemotePlayer dat equivalent is met het proces is niet LocalPlayer 3. Derhalve zijn de volgende relaties invariant: DXGroup.LocalPlayer.RemotePlayer, en, voor alle i met 0 i < DXGroup.Players.Count : DXGroup.Players[ i].remoteplayer DXGroup.Players[ i] DXGroup.LocalPlayer. Tenslotte geldt dat er een (unieke) i is, met 0 i < DXGroup.Players.Count, waarvoor geldt: DXGroup.Players[ i] = DXGroup.LocalPlayer. Eindhoven, 26 april 2001 Rob R. Hoogerwoord faculteit der Wiskunde en Informatica Technische Universiteit Eindhoven postbus MB Eindhoven 3 Merk op hoe onhandig de identifiers hier zijn gekozen: RemotePlayer is een boolean en LocalPlayer is een procesobject. Pas dus op!

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

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 TU/e Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica (Na de toets gecorrigeerde versie) PROBLEEM: Sleutels Lees

Nadere informatie

Programmeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff

Programmeren Blok B. Onderwerpen.   wstomv/edu/2ip05/ College 8. Tom Verhoeff Programmeren Blok B Onderwerpen http://www.win.tue.nl/ wstomv/edu/2ip05/ College 8 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Verdelen

Nadere informatie

Ontwerp van Algoritmen: opgaven weken 3 en 4

Ontwerp van Algoritmen: opgaven weken 3 en 4 0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus:

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus: rh276a 0 Een paar praktische stellinkjes 0 Standaardeindiging stelling (standaardeindiging 0) : Het volgende programmafragment eindigt, heeft als repetitie-invariant 0 n n N en als variante functie N n

Nadere informatie

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen? 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ 5 spelers, 2 dobbelstenen Probleem met dobbelspel College 1 Per ronde werpt elke speler 1 Kees Hemerik Tom Verhoeff Technische Universiteit

Nadere informatie

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen.  wstomv/edu/2ip05/ Per ronde werpt elke speler 1 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ College 1 5 spelers,2 dobbelstenen Probleem met dobbelspel Per ronde werpt elke speler 1 Tom Verhoeff Technische Universiteit Eindhoven

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

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok B Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 7 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering &

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

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software

Nadere informatie

Methode: Verdeel en heers

Methode: Verdeel en heers Programmeren Blok B Thema: Complexiteit beteugelen http://www.win.tue.nl/ wstomv/edu/ip05/ College Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering

Nadere informatie

HOE TEKEN IK EEN OMGEVINGSMODEL

HOE TEKEN IK EEN OMGEVINGSMODEL HOE TEKEN IK EEN OMGEVINGSMODEL MATTIAS DE WAEL 1. Inleiding Om de allereenvoudigste Scheme expressies te begrijpen volstaat het substitutiemodel. Het substitutiemodel verondersteld het bestaan van een

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

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

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse Objective-C Basis 23 april 2005, Eindhoven Patrick Machielse patrick@hieper.nl Algemeen // extensies Objective-C code in bestanden met.m extensie // commentaar moet! /* Alles hiertussen wordt genegeerd

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Turbo Pascal (deel 1)

Turbo Pascal (deel 1) Turbo Pascal (deel 1) MSX CLUB MAGAZINE 34 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 Erik van Bilsen leert u het klappen van de Turbo Pascal zweep. Turbo Pascal toepassen Deze

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

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

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

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

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

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

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

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

Vorig college. IN2505-II Berekenbaarheidstheorie College 4. Opsommers versus herkenners (Th. 3.21) Opsommers

Vorig college. IN2505-II Berekenbaarheidstheorie College 4. Opsommers versus herkenners (Th. 3.21) Opsommers Vorig college College 4 Algoritmiekgroep Faculteit EWI TU Delft Vervolg NDTM s Vergelijking rekenkracht TM s en NDTM s Voorbeelden NDTM s 20 april 2009 1 2 Opsommers Opsommers versus herkenners (Th. 3.21)

Nadere informatie

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,

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

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

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 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 je

Nadere informatie

Toets In2305-ii Embedded Programming Dinsdag 28 November 2006, 15:45-16:30

Toets In2305-ii Embedded Programming Dinsdag 28 November 2006, 15:45-16:30 Toets In2305-ii Embedded Programming Dinsdag 28 November 2006, 15:45-16:30 Teneinde misverstanden over de syntactische geldigheid van code fragmenten in dit tentamen te voorkomen, zal altijd worden gesproken

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

Pascal uitgediept Data structuren

Pascal uitgediept Data structuren Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur

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

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

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

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

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

Genetische algoritmen in Java met JGAP

Genetische algoritmen in Java met JGAP Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen

Nadere informatie

Inleiding Programmeren 2

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

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

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

Totaal

Totaal Programmeren Blok A Wat was het doel? http://www.win.tue.nl/ wstomv/edu/2ip05/ College 2 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology

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

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

Access voor beginners - hoofdstuk 25

Access voor beginners - hoofdstuk 25 Access voor beginners - hoofdstuk 25 Handleiding van Auteur: OctaFish Oktober 2014 Werken met Klassemodules Tot nu toe heb ik in de cursus Access veel gewerkt met formulieren, en met procedures en functies.

Nadere informatie

TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01.

TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01. TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01. De TCP-IP buffer is een byte-array van 1000 byte lang. byte Omschrijving voorbeeld 0 TCP/IP

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

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

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

Derde Delphi Programma verkenning

Derde Delphi Programma verkenning Derde Delphi Programma verkenning In deze opdracht gaan we een aantal typische componenten en gegevenstypen van Windows en Delphi verkennen. We bouwen een eenvoudige rekenmachine en ondertussen leer je

Nadere informatie

Creatief met Claim Check VNSG Tips & Tricks juni 2017

Creatief met Claim Check VNSG Tips & Tricks juni 2017 1 Creatief met Claim Check VNSG Tips & Tricks juni 2017 Auteur: Wouter Luijten Datum: 29-05-2017 2 Inleiding Het Claim-Check pattern is een pattern dat geïmplementeerd kan worden in SAP Netweaver PO ten

Nadere informatie

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof Programmeren Blok A Persistente opslag van waarden http://www.win.tue.nl/ wstomv/edu/2ip05/ College 4 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering

Nadere informatie

Zeef van Eratosthenes

Zeef van Eratosthenes Zeef van Eratosthenes [ Waarschuwing! Teveel wiskunde kan schade veroorzaken aan jouw interesse voor de informatica. ] De Zeef van Eratosthenes (ca. 240 v. Chr.) is een methode waarmee je alle priemgetallen

Nadere informatie

Tutorial 1, Delphi: Geldspraak

Tutorial 1, Delphi: Geldspraak Tutorial 1, Delphi: Geldspraak Versie Datum Auteurs Opmerkingen 1 25-09-2001 Kees Hemerik (code) Gebaseerd op Delphi 5 Enterprise. Roel Vliegen (tekst) 2 17-03-2005 Kees Hemerik Aanpassingen: Delphi 7,

Nadere informatie

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. 6.3 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik in het groepsvak Macro op

Nadere informatie

Een inleiding in de Unified Modeling Language 67

Een inleiding in de Unified Modeling Language 67 Een inleiding in de Unified Modeling Language 67 1.4.5. Toepassing 5: Klasse Kaart. De opdracht bestaat erin algemene klassen te maken zodanig dat het mogelijk wordt om het even welk kaartspel te maken.

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

Uniforme Pensioen Aangifte (UPA)

Uniforme Pensioen Aangifte (UPA) Beschrijving Koppelvlak Uniforme Pensioen Aangifte (UPA) De standaard voor het digitaal uitwisselen van werknemer- en salarisgegevens tussen werkgevers, administratiekantoren en pensioenuitvoerders. Uitgave

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

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

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

HOOfDsTuk 1 Objecten en klassen

HOOfDsTuk 1 Objecten en klassen HOOfDsTuk 1 Belangrijkste concepten in dit hoofdstuk: objecten klassen methodes parameters We springen meteen in het diepe en maken een begin met onze behandeling van objectgeorienteerd programmeren. Om

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

INFITT01 Internettechnologie WEEK 2

INFITT01 Internettechnologie WEEK 2 INFITT01 Internettechnologie WEEK 2 Programma Contexts Listeners Scope/Attributes Thread safety Taken container Een servlet draait in een container (servlet container). De container, die ten dienste van

Nadere informatie

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

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

Xelion ESPA koppeling Handleiding Beheer V1.6

Xelion ESPA koppeling Handleiding Beheer V1.6 Xelion ESPA koppeling Handleiding Beheer V1.6 van de Xelion ESPA koppeling. Dit document is bedoeld voor beheerders en operators Inhoud 1 Overzicht... 1 2... 2 2.1 Espa apparaat toevoegen... 4 2.1.1 ESPA

Nadere informatie

6.2 VBA Syntax. Inleiding Visual Basic

6.2 VBA Syntax. Inleiding Visual Basic 6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -

Nadere informatie

Zelftest Programmeren in PL/I

Zelftest Programmeren in PL/I Zelftest Programmeren in PL/I Document: n0830test.fm 26/03/2012 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST PRGRAMMEREN IN PL/I m de voorkennis

Nadere informatie

Organiseer uw verschillende SOAP services in één scenario

Organiseer uw verschillende SOAP services in één scenario 1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten wouterluijten@creetion.com 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.

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

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Informatica: C# WPO 7

Informatica: C# WPO 7 Informatica: C# WPO 7 1. Inhoud 1D-arrays, Lijsten 2. Oefeningen Demo 1: Vul de 1D-array Demo 2: Stringreplace Demo 3: Vul de lijst Demo 4: Debug oplossingen demo s 1, 2 en 3 A: Array reversal A: Gemiddelde

Nadere informatie

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 2010 Express, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Vespucci College, Marnix Gymnasium Rotterdam, december 2011 Hoofdstuk

Nadere informatie

EE1400: Programmeren in C BSc. EE, 1e jaar, , 3e college

EE1400: Programmeren in C BSc. EE, 1e jaar, , 3e college EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-201, e college Arjan van Genderen, Computer Engineering 4-12-2012 Delft University of Technology Challenge the future Hoorcollege Arrays, Pointers en Strings

Nadere informatie

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files. Turbo Pascal deel 7 Erik van Bilsen MSX Club Magazine 40 Scanned, ocr ed and converted to PDf by HansO, 2001 In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen,

Nadere informatie

Gegevensopslag in databouwstenen

Gegevensopslag in databouwstenen Gegevensopslag in databouwstenen 1 pagina 1 Databouwstenen (DB) OB1 Functie FC10 Functie FC20 Toegang tot alle bouwstenen Globale data DB20 Functiebouwsteen FB1 Instantie-DB van FB1 Instantiedata DB5 2

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

Bouwstenen voor PSE. Datatypes en Datastructuren

Bouwstenen voor PSE. Datatypes en Datastructuren Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

Verzamelingen, Lijsten, Functioneel Programmeren Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Stage Ignatiuscollege, 17 mei 2010 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen

Nadere informatie

Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019

Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019 Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019 Inleiding Al meer dan twintig jaar organiseert Karlijn aan het eind van het jaar een toernooi bij de volleybalclub, het zogenaamde oliebollentoernooi.

Nadere informatie

Data Definition Language

Data Definition Language Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen

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

Technical Note. API Beschrijving Aangetekend Mailen

Technical Note. API Beschrijving Aangetekend Mailen AUTHOR APPROVED Technical Note API Beschrijving Referentie: API beschrijving AM Versie: 0.0.7 Datum: 2015-07-24 Aangetekend Bellen B.V. Computerweg 5 Postbus 8307 3503 RH Utrecht T: +31 346 581 731 support@aangetekendmailen.nl

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

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

Les 15 : updaten van gegevens in de database (deel2).

Les 15 : updaten van gegevens in de database (deel2). Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken

Nadere informatie