Hutscodering. De techniek: illustratie. een tabel met 7 plaatsen, genummerd van 0 tot en met 6.

Maat: px
Weergave met pagina beginnen:

Download "Hutscodering. De techniek: illustratie. een tabel met 7 plaatsen, genummerd van 0 tot en met 6."

Transcriptie

1 Hutscodering die leeg kunnen zijn, tabel T: abstract stockage middel met plaatsen elementen vd. vorm (K, I) K is de sleutel (of key) en I bijhorende informatie creatie van een lege tabel; een nieuw element aan een tabel toevoegen; een element verwijderen uit een tabel; een element opzoeken in de tabel (en eventueel de bijhorende I wijzigen); een lijst maken van alle elementen in de tabel, eventueel gesorteerd. Verschillende organisaties: een array, een lineaire lijst of een boom. Welke: afhankelijk van welke vd. operaties het meeste uitgevoerd worden Bijkomende manier : hashing + bijzonder geschikt indien toevoegen en opzoeken meest voorkomende operaties. + het maken van een gesorteerde lijst : heel wat moeilijker. een tabel met 7 plaatsen, genummerd van 0 tot en met een lege tabel met zeven plaatsen Plaats waar een element toegevoegd wordt: berekenen uit de sleutel: sleutelwaarde (= de index bij letter) delen door de lengte van de tabel (7) en de restwaarde gebruiken als nummer van de plaats in de tabel. + element J 10 berekening: plaats 3 (10 % 7) + indien plaats 3 nog leeg is, element J 10 op die plaats toevoegen + op dezelfde manier : B 2 op plaats 2 toevoegen + het element S 19 op plaats 5 (19 % 7) B 2 J 10 S 19 na toevoegen van drie elementen De techniek: illustratie elementen met een sleutel K gelijk aan de letters van het alfabet met een index deze index : de positie van de letter in het alfabet bijvoorbeeld A 1, B 2, C 3, R 18 en Z 26. voor de eenvoud: geen bijhorende informatie I in element opgenomen deze elementen opslaan: een array van 26 plaatsen voorzien, voor elk mogelijk element één plaats echter mogelijk: het aantal reëel voorkomende elementen is veel kleiner dan het aantal mogelijke waarden voor de sleutel een enorme geheugenverspilling interessant: een tabel voorzien met slechts een beperkt aantal plaatsen, d.w.z. kleiner dan het totaal aantal mogelijke waarden voor K algemeen: plaats berekenen uit sleutelwaarde (L n ) m.b.v. hash functie: h(l n ) = n % 7. goede hash functie: sleutels zo uniform mogelijk verdelen over alle mogelijke plaatsen van de tabel. Verder toevoegen van elementen N 14, W 23 en X 24 problemen Toevoegen van element N 14 N 14 B 2 J 10 S 19 geen probleem: plaats 0 is leeg volgende element met sleutel W 23 : plaats h(w 23 )23 % 7 = 2 op plaats 2 : reeds een element aanwezig, namelijk B 2 element W 23 kan dus op deze plaats niet meer toegevoegd worden botsing: de twee sleutels B 2 en W 23 komen op hetzelfde hash adres : 2 = h(b 2 ) = h(w 23 ).

2 + mogelijke oplossing: naar lege plaatsen met lagere nummers gaan zoeken, te vertrekken vanaf de plaats waar de botsing plaats vond + open addressing: elementen toevoegen op lege plaatsen van de tabel + W 23 : lege plaats op index 1 (vertrekkend vanaf 2 ) element W 23 : niet op plaats 2 N 14 W 23 B 2 J 10 S 19 plaats 1 is nog leeg + element met sleutel X 24 : hash adres 3, op deze plaats reeds een element + ook al elementen in alle plaatsen met lagere nummers + er wordt dan verder gezocht vanaf het laatste element in de tabel + dus, X 24 kan toegevoegd worden op plaats X 24 : niet op 3, 2, 1, 0 N 14 W 23 B 2 J 10 S 19 X 24 uiteindelijk op plaats 6 Er zijn verschillende politieken om een botsing op te lossen. linear probing: de peil sequentie van sleutel L n wordt gevormd door af te tellen vanaf het hash adres h(l n ) en na 0 wordt verdergegaan met het laatste element van de tabel. dus met een probe decrement van 1, omdat voor het vinden van de volgende peillocatie 1 afgetrokken wordt van de actuele peillocatie omdat de elementen op lege plaatsen toegevoegd worden, spreekt men van open addressing with linear probing wanneer de tabel bijna vol is, resulteert deze methode in een slechte performantie + niet-lineaire peilmethode gebruiken om voor verschillende sleutels L n verschillende probe decrements te berekenen + dubbel hashing: de probe decrement wordt berekend met behulp van een hash functie (p(l n )) de probe sequentie: de plaatsen die onderzocht worden wanneer een nieuw element met sleutel L n toegevoegd wordt elk van deze plaatsen wordt gepeild om te bepalen of ze nog leeg is de eerste plaats in deze sequentie is het hash adres, h(l n ) de volgende plaatsen worden bepaald door de collision resolution policy in bovenstaand voorbeeld start de peil-sequentie voor de sleutel W 23 op plaats 2, gevolgd door de plaatsen 1, 0, 6, 5, 4 en 3 Een peil-sequentie is zodanig georganiseerd dat elke plaats in de tabel precies eenmaal onderzocht wordt. steeds een lege plaats vinden bij elke peil-sequentie: een volle tabel gedefinieerd als een tabel met exact één vrije plaats. op die manier zal dus steeds tijdens het aflopen van de peil-sequentie een lege plaats gevonden worden niet nodig om tijdens het aflopen het aantal bezochte elementen te tellen om te kunnen bepalen wanneer er kan gestopt worden met zoeken mogelijke methode berekenen decrement: het quotiënt nemen van deling van n door 7; wanneer dit quotiënt echter gelijk is aan nul, wordt een decrement gelijk aan 1 genomen. p(l n ) = max(1, n/7) voorbeelden: W 23 : max(1, 23/7) of 3 B 2 : max(1, 2/7) of 1 + elementen J 10, B 2, S 19 en N 14 toevoegen aan een lege tabel + eerste botsing bij het toevoegen van element W 23 : h(w 23 ) = 2, dus toevoegen op plaats 2; deze plaats is echter reeds bezet. + probe decrement berekenen: p(w 23 ) = 3, dus wordt naar plaats (2-3) 6 gekeken: deze plaats is nog vrij, zodat het element kan toegevoegd worden hash adres: h(w 23 ) = 2 N 14 B 2 J 10 S 19 W 23 probe decrement p(w 23 ) = 3

3 + element X 24 toevoegen : plaats 3 (h(x 24 )) is bezet + probe decrement p(x 24 ) = 3; plaats (3-3) 0 is ook bezet + verder kijken naar plaats (0-3) 4: hier kan het element toegevoegd worden h(x 24 ) = 3: niet leeg N 14 B 2 J 10 X 24 S 19 W 23 p(x 24 ) = 3, dus 0 en dan 4 voordeel van dubbel hashing: + bij een botsing van twee sleutels op een initieel hash adres zijn de peil sequenties voor deze twee sleutels meestal verschillend, omdat een verschillende probe decrement gebruikt wordt + bijvoorbeeld de sleutels J 10 en X 24 geven het zelfde hash adres, namelijk 3 + p(j 10 ) = 1 en p(x 24 ) = 3 : de twee peil sequenties zijn verschillend + effect: meestal zal sneller een lege plaats gevonden worden dan wanneer bij een botsing dezelfde peil sequenties gebruikt worden Parameter: tabellengte botsing: bij het toevoegen van twee verschillende sleutels, K en L, aan de tabel, hebben deze beide sleutels hetzelfde hash adres: h(k) = h(l). goede performantie: niet veel botsingen bij implementatie van hash techniek: enkele parameters goed kiezen + eerste parameter : de lengte van de tabel. + de tabel moet zeker groter zijn dan het te verwachte aantal op te slaan elementen + load factor λ van een hash tabel met lengte M en N plaatsen bezet: λ = N/M. + hoe kleiner de load factor, hoe minder kans op botsingen. + de lengte van de tabel: dikwijls een priemgetal: heeft te maken met een goede hashfunctie Collision resolution by separate chaining botsingen oplossen door gebruik te maken van gelinkte lijsten resultaat van het toevoegen van elementen J 10, B 2, S 19, N 14, W 23 en X N 14 B 2 J 10 S 19 W 23 X 24 + de tabel bevat pointers naar gelinkte lijsten + op zo n gelinkte lijst zitten de elementen waarbij de hashfunctie toegepast op de sleutel een zelfde waarde geeft. Parameter: aard van de hash functie + tweede keuze: de aard van de hash functie + een goede hash functie: de verschillende sleutels op een randomachtige maar uniforme manier over de volledige tabel verdelen + de hash functie: snel te berekenen deling methode: hash adres: de rest bij deling van sleutel door tabellengte h(k) = K % M bij tabellengte M lengte een macht van 2: afzonderen vd. laagste bits vd. sleutel gevaar: bij sommige sleuteltypes vrij dikwijls dezelfde rest: dus botsingen. randomachtige hash functie : beter deling uitvoeren met een priemgetal Er bestaan nog verschillende andere vormen voor de hash functie, bijvoorbeeld folding, middle-squaring en truncation.

4 folding (vouwen): de sleutel verdelen en de verschillende delen optellen een 9-cijfer sleutel: drie delen maken en deze delen optellen K = In plaats van optellen : vermenigvuldiging, aftrekking of deling mogelijk middle-squaring: middelste cijfers uit de sleutel halen en kwadratteren indien resultaat nog groter dan tabellengte: operatie herhalen K = truncation een deel van de sleutel verwijderen en de rest als adres overhouden K = drie laatste cijfers 122 weinig rekentijd maar sleutels meestal niet op een uniforme manier over de tabel verspreid Cluster een rij van aaneensluitende bezette plaatsen in een hash tabel In zo n rij zit dus geen enkele vrije plaats meer. lineaire peil methode geeft aanleiding tot primary clustering wanneer een aantal sleutels op dezelfde plaats botsen, worden deze botsende sleutels toegevoegd op plaatsen vlak voor de botsplaats op die manier kunnen op een aantal plaatsen in de tabel clusters ontstaan zo n cluster groeit steeds sneller en sneller omdat de kans op een botsing bij een nieuw toe te voegen element steeds groter wordt tijdens die groei komen sommige kleine clusters samen wat aanleiding geeft tot grote clusters: het proces versterkt dus zichzelf Dubbel hashing daarentegen geeft geen aanleiding tot primary clustering. Bij een botsing wordt het element niet noodzakelijk toegevoegd vlak naast de botsplaats. Er ontstaat dus niet altijd een cluster van twee elementen. Parameter: probe sequentie lineair peilen eenvoudig/slecht dubbel hashing tweede hash functie nodig deling methode: quotiënt (gereduceerd tot een bereik 1 : M 1) bij deling van sleutel door tabellengte, tenzij dit quotiënt nul is max(1, p(k)%m) met p(k) = max(1, K/M) bij tabellengte M + een peil sequentie moet alle plaatsen van de tabel nagaan + lineair peilen OK: bij M = 7 en begin hashadres gelijk aan 4: achtereenvolgens plaatsen 4, 3, 2, 1, 0 en dan 6 en 5 bekeken totdat een vrije plaats gevonden wordt + dubbel hashing niet zo duidelijk maar met tabellengte M en probe decrement p(k) relatief priem: peil sequentie doet volledige tabel aan + twee getallen zijn relatief priem wanneer ze alleen 1 als gemeenschappelijke deler hebben; wanneer tabellengte een priemgetal is, voor probe decrement gelijk welk getal groter dan of gelijk aan 1 te gebruiken. + een andere combinatie voor een goede peil sequentie geeft: een tabellengte gelijk aan een macht van twee en een oneven getal voor de probe decrement Voorbeeld Gegeven een aantal elementen waarvan de sleutel (K) telkens bestaat uit drie letters, bijv. MEC. Deze elementen moeten in een hash tabel met lengte M = 11 geplaatst worden. De hash functie h(k) wordt berekend door de sleutel te interpreteren als een basis 26 geheel getal. Bij een sleutel K = X 2 X 1 X 0, krijgt elk alfabetisch teken X i een geheeltallige waarde tussen 0 en 25. Voor A wordt de waarde 0 gebruikt, B de waarde 1 en zo verder tot Z met een waarde 25. drie-letter code omzetten van basis-26 getal naar decimaal getal: Basis26Waarde(K) = X X X

5 Op basis van deze basis-26 waarde van de sleutel kunnen de hash functies gedefinieerd worden: h(k) = Basis26Waarde(K) % 11 p(k) = max(1, (Basis26Waarde(K)/11) % 11) Bijvoorbeeld: Basis26Waarde(MEC) = = = 8218 het hash adres van MEC is h(mec) = 8218%11 = 1 lineair peilen: probe p(mec) gelijk aan 1, zoals voor alle andere sleutels dubbel hashing: probe decrement p(mec) = max(1, (8218/11)%11) = 10 lineair peilen dubbel hashing 0 GEN 0 ZOL 1 MEC 1 MEC 2 KOR 2 KOR 3 ZOL 3 LEU 4 BRU 4 GEN 5 ANT 5 ANT 6 GEE 6 GEE BRU 9 TUR 9 10 LEU 10 TUR 17 botsingen 3 botsingen tabel met de volgorde waarin de elementen toegevoegd worden : K basis26(k) h(k) p(k) p(k) (lineair) (dubbel) MEC ANT KOR BRU ZOL GEN LEU GEE TUR Het programma: /* hash.c : sleutel op basis van basis26 waarde */ #include <stdio. h> #include <s tdlib. h> #define NRIJ 11 /* priemgetal! */ #define LEN 4 char invoer [ ] = MEC, ANT, KOR, BRU, ZOL, GEN, LEU, GEE, TUR, 0 ; void voegtoe ( char a [ ] [ LEN], int m, char inv [ ], int ( decfun )(char [ ], int ) int plinfun ( char inv [ ], int m ) ; int pdubfun ( char inv [ ], int m ) ; void druktab( char a [ ] [ LEN], int m ) ; int verbose = 0; int aantal botsingen = 0;

6 int main( int argc, char argv [ ] ) char tabel [NRIJ ] [LEN] ; int m = NRIJ; int i = 0; int c = 0; int ( decfun )(char inv [ ], int m) ; decfun = plinfun ; while ( ( c=getopt ( argc, argv, ldv ))!= EOF ) switch ( c ) case l : decfun = plinfun ; break ; case d : decfun = pdubfun ; return (( inv [0] A ) 26 26) + (( inv [1] A ) 26) + inv [2] A ; int hfun ( char inv [ ], int m ) /* deling methode */ i = basis26 ( inv ) ; return i%m ; int plinfun ( char inv [ ], int m ) /* linear probing */ return 1; int pdubfun ( char inv [ ], int m) /* dubbel hashing */ break ; case v : verbose++; break ; memset ( tabel, \0, NRIJ LEN) ; while ( invoer [ i ] ) voegtoe ( tabel, m, invoer [ i ], decfun ) ; druktab( tabel, m) ; i++; printf ( Aantal botsingen : %d\n, aantal botsingen ) ; int basis26 ( char inv [ ] ) i = basis26 ( inv ) ; i = ( i /m)%m; return i==0? 1 : i ; void druktab( char a [ ] [ LEN], int m ) for ( i =0; i<m; i++) printf ( %3d : % 4.4s \n, i, a [ i ] ) ; void voegtoe ( char a [ ] [ LEN], int m, char inv [ ], int ( decfun )() ) int adr, i ; int dec ; i = adr = hfun ( inv, m) ;

7 dec = ( decfun )( inv, m) ; i f ( verb ose ) printf ( % 4.4s : %3d : %3d\n, inv, adr, dec ) ; while ( a [ i ] ) /* zolang er botsing is */ if ( strncmp ( a [ i ], inv, LEN) == 0 ) /* element reeds aanwezig */ return ; aantal botsingen++ ; i = dec ; /* volg probe sequentie */ if ( i < 0 ) i += m; strncpy ( a [ i ], inv, LEN) ; /* vul lege plaats in */ Denktaak Veronderstel dat hashfunctie in het voorbeeld vervangen wordt door bijgevoegde functie. Bereken de index in de hashtabel voor de eerste drie elementen (MEC, ANT, KOR), met m gelijk aan 11. Treedt er bij deze drie elementen reeds een botsing op? int hfun ( char inv [ ], int m ) i = ( inv [0]<<2) ˆ ( inv [1] > >1); return i%m ; Opties en argumenten dit programma werkt met opties en argumenten (a.out -l bestand) verschillende opties in while lus verwerken met getopt eerste en tweede argument van deze functie: parameters van main functie; het derde argument is een string met de mogelijke opties terugkeerwaarde is telkens één van de mogelijke opties; door middel van een switch kan de desbetreffende optie geselecteerd worden in het derde argument na de optieletter een dubbelpunt (:): bij deze optie is er een bijkomende parameter deze parameter door getopt bereikbaar gesteld via variabele optarg (char ) indien de parameter een getal is, moet de bijhorende numerieke waarde berekend worden, bijv. met de functie atoi of atof. nadat alle opties behandeld zijn, geeft getopt de waarde EOF terug variabele optind heeft dan als waarde de index van het eerstvolgende element in de argv array (dat niet met een minteken begint)

Lineaire data structuren. Doorlopen van een lijst

Lineaire data structuren. Doorlopen van een lijst Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):

Nadere informatie

29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties

29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties Hashing Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 november 2012 ODE/FHTBM Hashing 29 november 2012 1/30 Hashing Een typisch gebruik van de implementatie

Nadere informatie

Recursie: definitie. De som van de kwadraten van de getallen tussen m en n kan als volgt gedefinieerd worden:

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:

Nadere informatie

Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.

Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep. Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht

Nadere informatie

Datastructuren Uitwerking jan

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

Nadere informatie

Hoofdstuk 9. Hashing

Hoofdstuk 9. Hashing Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code

Nadere informatie

O(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS

O(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde bestanden;

Nadere informatie

Niet-numerieke data-types

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

Nadere informatie

Datastructures. Opdracht 3

Datastructures. Opdracht 3 Datastructures Opdracht 3 Naam Jeffrey van der Lingen Kevin Huijzendveld Joshua Turpijn Klas IS205 Vak Datastructures Datum 06/11/2016 Inhoudsopgave Inleiding... 3 1. Hashfunctie... 4 1.1 Inleiding...

Nadere informatie

Dynamisch geheugen beheer

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

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

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

Nadere informatie

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

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

Nadere informatie

O(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS

O(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde

Nadere informatie

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd Inhoudsopgave 1 Inleiding... 1 2 Toekenning- en herhalingsopdrachten (for loop)... 2 2.1 De wet van Ohm... 3 2.2 De spaarrekening... 3 2.3 De transformator... 3 3 Keuze- en herhalingsopdrachten (if, switch,

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (  15 x 3 = 45 15 x 3 = 45 2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (http://www.youtube.com/watch?v=cceqwwj6vrs) 15 x 3 is een product. 15 en 3 zijn de factoren van het product. 15 : 3 = 5 15 : 3 is een

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

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

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

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

continue in een for, while of do lus herhaalt de lus vroegtijdig. De volgende herhaling wordt onmiddellijk begonnen.

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;

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd

Nadere informatie

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

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

Operaties op bestanden

Operaties op bestanden Operaties op bestanden C bevat geen speciale taalconstructies voor in- en uitvoer. een verzameling van functies, onderdeel van de standaard C-bibliotheek: fopen fclose fgetc fputc ungetc fscanf fprintf

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

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

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

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011 Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2010-2011 21 juni 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief

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

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

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

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

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.

Nadere informatie

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 1) Haakjes wegwerken 2) Vermenigvuldigen en delen van links naar rechts 3) Optellen en aftrekken van links naar rechts Schrijf ALLE stappen ONDER

Nadere informatie

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

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

Nadere informatie

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet. Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven

Nadere informatie

We beginnen met de eigenschappen van de gehele getallen.

We beginnen met de eigenschappen van de gehele getallen. II.2 Gehele getallen We beginnen met de eigenschappen van de gehele getallen. Axioma s voor Z De gegevens zijn: (a) een verzameling Z; (b) elementen 0 en 1 in Z; (c) een afbeelding +: Z Z Z, de optelling;

Nadere informatie

Informatica: C# WPO 11

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

Nadere informatie

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

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

Nadere informatie

Instructies en blokken

Instructies en blokken Herhaling 1 Instructies en blokken 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.

Nadere informatie

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

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

Nadere informatie

Opdrachten numerieke methoden, week 1

Opdrachten numerieke methoden, week 1 Opdrachten numerieke methoden, week Opdracht : De potentiaal in een diode. [Bewijs dat ψ = u T arcsinh D 2n i ) ] ) ) D = n p = n i e ψ u T e ψ u ψ T = 2n i sinh u T ) D ψ = u T arcsinh 2n i.2 [Conditiegetal

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

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

round up or round down 2 je maakt een getal kleiner door een getal van een ander af te halen, je mag ook numeral figure, number

round up or round down 2 je maakt een getal kleiner door een getal van een ander af te halen, je mag ook numeral figure, number GETALLEN SYMBOOL TERM ENGELS NEDERLANDS 1 afronden round up or round down een mooi, rond getal ervan maken 2 aftrekken to subtract je maakt een getal kleiner door een getal van een ander af te halen, je

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 ) OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................

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

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Nadere informatie

5. Vergelijkingen. 5.1. Vergelijkingen met één variabele. 5.1.1. Oplossen van een lineaire vergelijking

5. Vergelijkingen. 5.1. Vergelijkingen met één variabele. 5.1.1. Oplossen van een lineaire vergelijking 5. Vergelijkingen 5.1. Vergelijkingen met één variabele 5.1.1. Oplossen van een lineaire vergelijking Probleem : We willen x oplossen uit de lineaire vergelijking p x+q=r met p. Maxima biedt daartoe in

Nadere informatie

Voortgezet Prog. voor KI

Voortgezet Prog. voor KI Voortgezet Prog. voor KI Docent: Michael Wilkinson IWI 142 tel. 050-3638140 (secr. 3633939) Frank Brokken RC 352 tel. 050-3633688 Voorkennis: Inleiding Programmeren voor KI (nieuwe stijl) Stof: Practicum

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

Instructies en blokken

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.

Nadere informatie

1 Rekenen met gehele getallen

1 Rekenen met gehele getallen 1 Inhoudsopgave 1 Rekenen met gehele getallen... 1.1 De gehele getallen... 1. Optellen... 1. Opgaven... 1. Aftrekken... 1. Opgaven... 1. Vermenigvuldigen... 1. Opgaven... 1.8 Delen... 9 1.9 Opgaven...9

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

SYMBOOL TERM ENGELS NEDERLANDS 1. numeral figure, number. symbool waarmee je een getal schrijft, we hebben 10 cijfers 0 -> 9 2. numral, figure, number

SYMBOOL TERM ENGELS NEDERLANDS 1. numeral figure, number. symbool waarmee je een getal schrijft, we hebben 10 cijfers 0 -> 9 2. numral, figure, number GETALLEN SYMBOOL TERM ENGELS NEDERLANDS 1 cijfer numeral figure, symbool waarmee je een getal schrijft, we hebben 10 cijfers 0 -> 9 2 getal numral, figure, nummer dat bestaat uit 1 of méér cijfers 3 4

Nadere informatie

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Hoofdstuk 6: Beslissingen: if-statement en switch-statement. Inleiding: Condities zijn waar (true) of onwaar (false) In C staat het int-getal

Nadere informatie

Informatica: C# WPO 9

Informatica: C# WPO 9 Informatica: C# WPO 9 1. Inhoud Functies (functies met return-waarde) 2. Oefeningen Demo 1: Som Demo 2: Min en max of array Demo 3: Retourneer array van randomwaarden A: Absolute waarde A: Afstand A: Aantrekkingskracht

Nadere informatie

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

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

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

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Uitwerkingen Rekenen met cijfers en letters

Uitwerkingen Rekenen met cijfers en letters Uitwerkingen Rekenen met cijfers en letters Maerlant College Brielle 5 oktober 2009 c Swier Garst - RGO Middelharnis 2 Inhoudsopgave Rekenen met gehele getallen 7. De gehele getallen.....................................

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0. REKENEN VIJFDE KLAS en/of ZESDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Luc Cielen: Regels van deelbaarheid, grootste gemene deler en kleinste gemeen veelvoud 1 Deelbaarheid door 10, 100, 1000. Door

Nadere informatie

10 Meer over functies

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

Nadere informatie

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (http://www.youtube.com/watch?v=cceqwwj6vrs) 15 x 3 = 45

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (http://www.youtube.com/watch?v=cceqwwj6vrs) 15 x 3 = 45 15 x 3 = 45 2.1 Bewerkingen [1] Video Geschiedenis van het rekenen (http://www.youtube.com/watch?v=cceqwwj6vrs) 15 x 3 is een product. 15 en 3 zijn de factoren van het product. 15 : 3 = 5 15 : 3 is een

Nadere informatie

1.1 Rekenen met letters [1]

1.1 Rekenen met letters [1] 1.1 Rekenen met letters [1] Voorbeeld 1: Een kaars heeft een lengte van 30 centimeter. Per uur brand er 6 centimeter van de kaars op. Hieruit volgt de volgende woordformule: Lengte in cm = -6 aantal branduren

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

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

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

4.1 Negatieve getallen vermenigvuldigen [1]

4.1 Negatieve getallen vermenigvuldigen [1] 4.1 Negatieve getallen vermenigvuldigen [1] Voorbeeld 1: 5 x 3 = 15 (3 + 3 + 3 + 3 + 3 = 15) Voorbeeld 2: 5 x -3 = -15 (-3 +-3 +-3 +-3 +-3 = -3-3 -3-3 -3 = -15) Voorbeeld 3: -5 x 3 = -15 Afspraak: In plaats

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

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

Nadere informatie

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen Voorbeelden Sorteren Schrijf een programma dat een rij gehele getallen sorteert een eerste functie leest de rij gehele getallen; een tweede functie sorteert deze getallenrij van klein naar groot; een derde

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

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

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

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

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens Info-books AL20 Toegepaste Informatica Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) Jos Gils Erik Goossens Hoofdstuk 6 Lusstructuren of iteraties 6.1 Probleemstelling Het gebeurt dikwijls

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

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

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

Indexen.

Indexen. Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen

Nadere informatie

1. Optellen en aftrekken

1. Optellen en aftrekken 1. Optellen en aftrekken Om breuken op te tellen of af te trekken maak je de breuken gelijknamig. Gelijknamig maken wil zeggen dat je zorgt voor 'gelijke noemers': Om de breuken met 'derden' en 'vijfden'

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

WERKOMGEVING... 3 INSTELLINGEN... 3 BASISVAARDIGHEDEN... 3 INVOEREN GEGEVENS... 3 OPMAAK... 3

WERKOMGEVING... 3 INSTELLINGEN... 3 BASISVAARDIGHEDEN... 3 INVOEREN GEGEVENS... 3 OPMAAK... 3 Competentieprofiel Excel Basis De gebruiker van dit document mag: het werk kopiëren, verspreiden en doorgeven, evenals afgeleide werken maken, onder de volgende voorwaarden: Naamsvermelding. De gebruiker

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

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

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Variabelen gebruiken in ons programma

Variabelen gebruiken in ons programma Hoofdstuk 3 Variabelen introduceren Variabelen gebruiken in ons programma Het zou leuk zijn als ons programma Hallo kan zeggen met de naam van de gebruiker in plaats van het algemene Hallo wereld?. Als

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

DomJudge-Practicum. Open Dag UU

DomJudge-Practicum. Open Dag UU 1 Introductie DomJudge-Practicum Open Dag UU Bij veel vakken die je volgt tijdens je studie informatica aan de UU, moet je programmeeropdrachten maken. Soms moet je die inleveren zodat ze door de docent

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

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

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

Nadere informatie

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

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

EXACT- Periode 1. Hoofdstuk Grootheden. 1.2 Eenheden.

EXACT- Periode 1. Hoofdstuk Grootheden. 1.2 Eenheden. EXACT- Periode 1 Hoofdstuk 1 1.1 Grootheden. Een grootheid is in de natuurkunde en in de chemie en in de biologie: iets wat je kunt meten. Voorbeelden van grootheden (met bijbehorende symbolen): 1.2 Eenheden.

Nadere informatie

Demo document template available on the Rapptorlab website

Demo document template available on the Rapptorlab website Proef ingediend met het oog op het behalen van de graad van bachelor in de Ingenieurswetenschappen Demo document template available on the Rapptorlab website Course/thesis example Laurent Segers, Tom van

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen: 1) Haakjes wegwerken 2) Vermenigvuldigen en delen van links naar rechts 3) Optellen en aftrekken van links naar rechts Schrijf ALLE stappen ONDER

Nadere informatie

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011) Katholieke Universiteit Leuven September 011 Module 1 Algebraïsch rekenen (versie augustus 011) Inhoudsopgave 1 Rekenen met haakjes 1.1 Uitwerken van haakjes en ontbinden in factoren............. 1. De

Nadere informatie

Ziv-Lempel-Welch Compressie

Ziv-Lempel-Welch Compressie Ziv-Lempel-Welch Compressie Datastructuren, najaar 1998, tweede programmeeropdracht Het ZLW-algoritme Het ZLW compressie algoritme codeert teksten door daarin strings van variabele lengte om te zetten

Nadere informatie