Lineaire data structuren. Doorlopen van een lijst
|
|
|
- Francisca Koning
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn deze links geven de volgorde in de lijst aan Een bepaald element in de lijst kan alleen aangesproken worden vanuit het voorgaande element. Er zijn twee voordelen: B F L + de lengte van de lijst kan veranderen tijdens de levensduur: men kan gemakkelijk elementen toevoegen en/of verwijderen; + de flexibiliteit om de elementen te herschikken in een andere volgorde. Doorlopen van een lijst De lijst sequentieel doorlopen kan met een eenvoudige while lus: void doorloop ( Node p) while ( p!= ( Node )NULL ) printf ( %c, p >data ) ; p = p >volgend ; printf ( \n ) ; Een mogelijke oproep is doorloop();. Een knooppunt van een lijst bevat twee delen: de informatie (van type Info) en een link naar de volgende node. typedef struct snode Info data ; Node ; struct snode volgend ; Voorbeeld: data is van het type char (typedef char Info;) veld volgend : pointer naar het volgende element op de lijst aangeven hoe het eerste element van de lijst kan bereikt worden via een extra variabele, (type is Node *) aangeven dat een bepaald element het laatste element is volgend veld vh laatste element gelijkstellen aan (Node *)NULL. B F L Een lijst construeren : telkens een element vooraan toevoegen: Node voegvooraantoe (Node, Info gegeven ) Node nieuw ; nieuw = (Node ) malloc ( sizeof (Node ) ) ; nieuw >data = gegeven ; nieuw >volgend = ; return nieuw ; Bovenstaande lijst wordt geconstrueerd door volgende oproepen: Node = ( Node )NULL; = voegvooraantoe (, ) = voegvooraantoe (, L ) = voegvooraantoe (, F ) = voegvooraantoe (, B )
2 Het zoeken van een element met waarde gegeven in de gelinkte lijst vanaf knooppunt : Iteratief: Node zoek (Node, Info gegeven ) Node p ; p = ; while ( p!= ( Node )NULL ) i f ( p >data == gegeven ) return(p ) ; p = p >volgend ; Het omkeren van de volgorde in de gelinkte lijst: B F L Node omkeren ( Node ) Node p, q, r ; p = ; r = (Node )NULL; while ( p!= ( Node )NULL ) q = p ; return r ; p = p >volgend ; q >volgend = r ; r = q ; Recursief: Node rzoek (Node p, Info gegeven ) if ( p == (Node )NULL ) return(p ) ; i f ( p >data == gegeven ) return(p ) ; return rzoek ( p >volgend, gegeven ) ; Oproep in beide gevallen: Node v = ( r ) zoek (, ) ; Operaties: toevoegen Het toevoegen van een nieuw element na knooppunt na: Node voegtoe (Node na, Info gegeven ) Node nieuw ; nieuw = (Node ) malloc ( sizeof (Node ) ) ; nieuw >data = gegeven ; i f ( na!= ( Node )NULL ) nieuw >volgend = na >volgend ; na >volgend = nieuw else nieuw >volgend = ( Node )NULL; return nieuw ;
3 B F L J na >volgend = q >volgend ; free (q ) ; return na ; Mogelijke oproep: if (==NULL) =voegtoe (NULL, g) else voegtoe (na, g ) ; B F L Een oproep zou kunnen zijn: x->volgend = verwijder(x->volgend);. Operaties: verwijderen Het verwijderen van een element na knooppunt na: Node verwijder (Node na) Node q = na >volgend ; Het verwijderen van het laatste element: Hiervoor moet eerst het voorlaatste element bepaald worden. Node verwijderachteraan ( Node ) Node vorig, actueel ; if ( q == (Node )NULL ) /* er is geen volgend element */ /* een mogelijkheid is het element zelf verwjderen */ free (na ) ; /* pointer die na aanwijst is NIE aangepast in NULL!! */ else i f (!= ( Node )NULL ) i f ( >volgend == ( Node )NULL ) fr ee ( ) ; else vorig = ;
4 actueel = >volgend ; while ( actu eel >volgend!= ( Node )NULL ) vorig = actueel ; actueel = actueel >volgend ; free ( actueel ) ; vorig >volgend = ( Node )NULL; return ; return ; p = p >volgend ; i f ( p >volgend!= twee ) /* er moet een element voor "twee" zitten */ p >volgend = twee >volgend ; twee >volgend = een >volgend ; een >volgend = twee ; Oefening. Wat gebeurt er als element twee reeds vlak na element een zit? Operatie herschikken Het herschikken van de lijst: element twee komt vlak achter element een: B Node herschik ( Node, Node een, Node twee ) Node p = ; if ( p == (Node )NULL ) F while ( p >volgend!= ( Node )NULL ) i f ( p >volgend == twee ) break ; L Dubbel gelinkte lijsten + gelinkte lijst: het volgend element kan gemakkelijk gevonden worden + vorige element vinden : gans de lijst moet tot aan het element doorzocht worden + dit efficiënter doen: gebruik maken van een dubbel gelinkte lijst: naast een verwijzing naar het volgende element op de lijst is ook een verwijzing naar het vorige element aanwezig. typedef struct dub Info data ; struct dub volgend ; struct dub vorig ; Dnode;
5 B F L herschik functie: voorgaande element van twee moet niet gezocht worden: Dnode herschik ( Dnode een, Dnode twee ) twee >vorig >volgend = twee >volgend ; twee >volgend >vorig = twee >vorig ; twee >volgend = een >volgend ; twee >vorig = een ; een >volgend >vorig = twee ; een >volgend = twee ; Het probleem van Josephus: Veronderstel dat N mensen besloten hebben om collektief zelfmoord te plegen door in een cirkel te gaan staan en telkens de M-e persoon te elimineren. Wie blijft er over of wat is de volgorde van afvallen? Bijvoorbeeld bij N = 7 personen met M = 4 is de volgorde: /* * telaf.c : het probleem van Josephus : met een lijst */ #include <stdio. h> #include <malloc. h> #define MAXP 25 int a f t e l l e n ( int n, int m) ; int main( int argc, char argv [ ] ) int n, m, res ; Circulaire lijsten Voorgaande functie is correct wanneer na een nog minstens één element aanwezig is en wanneer voor en na twee ook minstens één element aanwezig is. Om deze voorwaarden niet te hoeven controleren kunnen we een circulaire lijst gebruiken. Wanneer het laatste element in de lijst wijst naar het eerste element, heeft men een circulaire lijst: t printf ( Aantal mensen : ) ; scanf ( %d% c, &n ) ; printf ( Hoeveel overslaan : ) ; scanf ( %d% c, &m) ; res = a f t e l l e n (n, m) ; printf ( De laatste van %d met %d overslaan : %d\n, n, m, res ) ; typedef struct node int nr ; struct node next ; Elem ; void drukaf (Elem x ) ; int a f t e l l e n ( int n, int m)
6 Elem v ; Elem t ; /* wijst naar persoon die revolver net heeft doorgegeven */ int i ; v = t = (Elem ) malloc ( sizeof (Elem) ) ; v >nr = 1; for ( i =2; i<=n ; i++) v >next = (Elem ) malloc ( sizeof (Elem) ) ; v = v >next ; v >nr = i ; v >next = t ; t = v ; drukaf ( t ) ; while ( t!= t >next ) printf ( %3d, t >nr ) ; t = t >next ; while ( t!= x ) ; printf ( \n ) ; for ( i =1; i<m; i++) t = t >next ; v = t >next ; t >next = t >next >next ; free (v ) ; drukaf ( t ) ; return t >nr ; void drukaf ( Elem x) Elem t ; t = x ; do Stacks In veel toepassingen is het niet nodig om op een willekeurige plaats in de lijst elementen te kunnen toevoegen of verwijderen. Ook het herschikken van de elementen in de lijst is niet altijd vereist. Een stack is een data-structuur waarop slechts twee mogelijke operaties gedefinieerd zijn: push : het toevoegen van een element in het begin van de lijst; pop : het verwijderen van het eerste element van de lijst. Een klassiek voorbeeld is het berekenen van de waarde van een eenvoudige rekenkundige uitdrukking. De intermediaire resultaten kunnen gemakkelijk op een stack bewaard worden.
7 De waarde van 5 (((9 + 8) (4 6)) + 7) kan berekend worden met push(5); push(9); push(8); push( pop() + pop() ); push(4); 6 push(6); push( pop() * pop() ); push( pop() * pop() ); push(7); push( pop() + pop() ); push( pop() * pop() ); printf( "%d\n", pop() ); int isstackle eg (void ) return! top ; int isstackvol (void ) return top==max; + variabele top : de index van de eerste vrije plaats, de plaats waar een volgend element kan gepusht worden. + in deze eenvoudige functies wordt NIE nagegaan wordt of de array volzet is (bij een push) of de array leeg is (bij een pop) Oefening. Implementeer deze stack functies met behulp van een gelinkte lijst. Wanneer de maximale lengte van de stack op voorhand gekend is, kan bij de implementatie gebruik gemaakt worden van een array: #define MAX 100 static int stack [MAX] ; static int top ; void s tackinit (void ) top = 0; /* top wijst naar eerstvolgende vrije element */ void push ( int w) stack [ top++] = w; int pop(void ) return stack[ top ] ; Queues Bij een queue zijn er ook maar twee basisoperaties mogelijk: + toevoegen van een element aan de ene kant van de lijst, + wegnemen van een element aan de andere kant. Een implementatie met behulp van een array: #define MAX 100 static int queue [MAX] ; static int ; static int staart ; void queueinit (void ) staart = = 0; void put( int w)
8 queue [ staart ++] = w; /* staart wijst naar lege plaats */ if ( staart == MAX ) /* waar eerstvolgende element */ staart = 0; /* moet toegevoegd worden */ int get (void ) int w = queue [ ++]; /* wijst naar eerste element */ i f ( == MAX ) /* dat kan weggenomen worden */ = 0; return w; int isqueueleeg (void ) return ==staart ; Denktaak Veronderstel dat top een pointer is naar het eerste element van een dubbel gelinkte lijst. Zo n element is van type Stack. Wat is het effect van de functieoproep top = functie(top);? Verklaar uw antwoord met een tekening. typedef struct node int waarde ; struct node volgend ; struct node vorig ; Stack ; Stack functie ( Stack top ) Stack p = top ; Stack t ; Oefening. Implementeer deze queue functies met behulp van een dubbel gelinkte lijst. staart K N I P Stack v = top ; while ( p!= NULL ) t = p >volgend ; p >volgend = p >vorig ; p >vorig = t ; v = p ; p = t ; return v ;
Recursie: definitie. De som van de kwadraten van de getallen tussen m en n kan als volgt gedefinieerd worden:
Recursie: definitie Een object wordt recursief genoemd wanneer het partieel bestaat uit of partieel gedefinieerd is in termen van zichzelf. Recursie wordt gebruikt bij wiskundige definities, bijvoorbeeld:
Dynamisch geheugen beheer
Dynamisch geheugen beheer + Normaal wordt laats in het werkgeheugen gereserveerd tijdens de comilatie aan de hand van de declaraties van de variabelen. + Deze geheugenreservering is statisch: in het bronbestand
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)
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
EE1400: Programmeren in C BSc. EE, 1e jaar, , 4e college
EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-2013, 4e college Arjan van Genderen, Computer Engineering 11-12-2012 Delft University of Technology Challenge the future Mededelingen Voortgangstoets: Woensdagmiddag
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
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:
Tentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
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
Programmeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
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
Programmeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/
Programmeermethoden Functies vervolg Walter Kosters week 5: 1 5 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files manipuleren 1 Deze void-functie telt niet-lege regels in een file invoer: void
Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011
15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree
Een eenvoudig algoritme om permutaties te genereren
Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden
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
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
Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen
Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november
Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
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
De MySQL C API. Variabelen in C Functies in C Pointers in C
LinuxFocus article number 304 http://linuxfocus.org De MySQL C API door Özcan Güngör Over de auteur: Ik gebruik Linux sinds 1997. Vrijheid, flexibiliteit en opensource. Dat
De doorsnede van twee verzamelingen vinden
De doorsnede van twee verzamelingen vinden Daniel von Asmuth Inleiding Dit artikel probeert enkele algoritmen te vergelijken om de doorsnede van twee verzamelingen of rijen van getallen te vinden. In een
12 Meer over pointers
12 Meer over pointers 12.1 Arrays van pointers Omdat pointers zelf variabelen zijn, is het mogelijk arrays van pointers te maken. Elk arrayelement is een pointer naar een of ander object. In de declaratie
P R O G R A M M E E R - T E C H N I E K E N
Associatie KULeuven Hogeschool voor Wetenschap & Kunst campus De Nayer Industrieel ingenieur Opleiding elektronica-ict Academisch bachelorjaar, 2e fase Academisch schakeljaar P R O G R A M M E E R - T
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,
Uitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
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,
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
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
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
De doorsnede van twee verzamelingen vinden
De doorsnede van twee verzamelingen vinden Inleiding Daniel von Asmuth 12 februari 2015 Dit artikel vergelijkt enkele algoritmen om de doorsnede van twee verzamelingen of rijen van getallen te vinden.
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
Algoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
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)
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
Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
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&
10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
Elementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
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
Java Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Week 5 : Hoofdstuk 11+ extra stof: meer over functies. Hoofdstuk 11:
Week 5 : Hoofdstuk 11+ extra stof: meer over functies Hoofdstuk 11: Functies Functies in C lijken heel erg op functies in Java. Maar er is één groot veschil: Java ken uitsluitend invoer-parameters, terwijl
continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.
Hoofdstuk 3: controlestructuren instructies en blokken Naar elke instructie staat een ; Instructies worden door de haakjes {} in een block samengevat. if else if ( expression) statement1; else statement2;
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
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017.
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes
Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
7 Omzetten van Recursieve naar Iteratieve Algoritmen
7 Omzetten van Recursieve naar Iteratieve Algoritmen Het lijkt mogelijk om elke oplossings-algoritme, die vaak in eerste instantie recursief geformuleerd werd, om te zetten in een iteratieve algoritme
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)
Auteur 02-11-06. 1 Inleiding...3. 2 Namen in applicatie...4. 2.1 Opslag structuur... 4 2.2 Gedefinieerde structuren... 4
MV-MODULE RWSC versie 3 Inhoudsopgave 1 Inleiding...3 2 Namen in applicatie...4 2.1 Opslag structuur... 4 2.2 Gedefinieerde structuren... 4 3 Signaalgroep informatie bij bijzondere ingrepen...6 4 Extra's...7
int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }
1 Functies ( ) voorbeeld: int power(int base, int n) int i, p; p = 1; for ( i=1, i
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
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
Oefententamen 2. Tijd: 2 uur. Maximaal aantal punten: 30. Naam: Studentnummer:
Oefententamen 2 C Naam: Studentnummer: Tijd: 2 uur Maximaal aantal punten: 30 Menselijke compiler (10 punten) 0. (1 punt) Stel, je haalt het tentamen als je tenminste een 5.5 gemiddeld hebt gehaald voor
Dynamisch Programmeren. Het Rugzakprobleem
INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................
Instructies en blokken
Herhaling 1 Instructies en blokken 2 Naar elke instructie staat een ; puntkomma Verschillende instructies worden door de accolades in een block samengevat. Een blok is het zelfde als een enkele instructie.
Programmeertechnieken
Aanvulling op Programmeren Radboud Universiteit Nijmegen 10 December 2012 1 Omschrijving Linked lists Implementatie Boomstructuren 2 Recursie De rij van Fibonacci Het driehoekprobleem 3 Het substitutiecijfer
Een typisch programma in C en C++ bestaat uit een aantal onderdelen:
Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde
TENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies
17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke
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));
sheets Programmeren 1 Java college 6, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 13 en 14 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Online c++ leren programmeren:
Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma
Datastructuren Uitwerking jan
Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?
Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.
voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is
PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt
Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding
Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend
Datastructuren en algoritmen
Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift
