Modelleren en Programmeren

Maat: px
Weergave met pagina beginnen:

Download "Modelleren en Programmeren"

Transcriptie

1 Modelleren en Programmeren Deeltoets 2. Proefopgaven Het tentamen bestaat uit tien vragen, elk goed voor drie punten. minimaal 16.5 uit 30 punten haalt. Je bent geslaagd als je Opgave 1 Neem de volgende queries over, en geef aan hoe Prolog erop reageert.?- X = mia, X = Vincent.?- X = mia, X = vincent.?- k(s(g),y) = k(x,t(k)).?- k(s(g),t(k)) = k(x,t(y)).?- [X []] = [a].?- [X,[]] = [a,[] []]. Opgave 2 Hier de definitie van optellen voor natuurlijke getallen in successornotatie. add(0,x,x). add(s(x),y,s(z)) :- add(x,y,z).... 1

2 Opgave 3 Hieronder de definitie van een predicaat times/3 waarmee je vermenigvuldigen modelleert als herhaald optellen. times_acc(x,y,z) :- times(x,y,0,z). % wrapper times(s(x),y,a,z) :- add(y,a,a1), times(x,y,a1,z). times(0,_,a,a). Definieer nu modulo/3 als herhaald aftrekken. De relatie modulo(x,y,z) drukt uit dat Z de rest is van delen van X door Y. Je definitie heeft een grensgeval en een recursief geval. - Het grensgeval wordt bereikt als X kleiner is dan de deler Y. In dat geval is X zelf de gezochte rest. - Het recursieve geval formuleert modulo rekenen als herhaald aftrekken. Denk erom dat de deler groter moet zijn dan nul. Voorbeeld:?-modulo(s(s(s(0))),s(s(0)),Z). Antwoord: Z = s(0). 2

3 Opgave 4 Hieronder een programma len/2 om de lengte van een lijst uit te rekenen. len([],0). len([_ T],N) :- len(t,m),n is M+1. De definitie is links-recursief. Geef een betere definitie met behulp van een predicaat len/3 dat van een accumulator gebruik maakt: len(lijst,acc,lengte) slaagt als Lengte de lengte is van Lijst uitgerekend met behulp van Acc als accumulator. len/3 loopt van links naar rechts door de invoerlijst, en hoogt de accumulator bij elke stap op. Als het eind van de invoerlijst is bereikt, is de gezochte lengte gelijk aan de waarde van de accumulator. Geef een wrapper, die de goede startwaarde voor de accumulator invult voor de?? hieronder. Definieer dan het recursieve en het grensgeval voor len/3. len(lijst,lengte) :- len(lijst,??,lengte). Opgave 5 Het ingebouwde predicaat select/3 werkt als volgt: select(e,lijst,rest) slaagt als Rest de lijst is die overblijft als je een voorkomen van element E uit Lijst verwijdert, en faalt als E niet in Lijst voorkomt. Bijvoorbeeld:?- select(a,[b,a,c,a],l). L = [b, c, a] ; L = [b, a, c] ; false. Definieer select/3. Je definitie heeft een basisgeval, en een recursief geval. Je mag geen hulppredicaten gebruiken. 3

4 Opgave 6 We kunnen een getal in binaire notatie in Prolog representeren als een niet lege lijst van 0-en en 1-en wordt dan [0], 5 10 wordt [1,0,1], enzovoort. Definieer een predicaat bitnot/2 waarmee je een dergelijke lijst omzet in zijn bitsgewijze complement: 0 wordt 1 en omgekeerd. Bijvoorbeeld:?- bitnot([1,0,0,1],l). L = [0,1,1,0]. Opgave 7 Om een decimaal getal n 10 om te rekenen naar m 2 in binaire notatie is er het volgende eenvoudige algoritme. Deel n door twee: de rest is de laatste bit van m; voor de voorlaatste bit herhaal je met het naar beneden afgeronde resultaat van n/2; ga zo door tot het resultaat van verder delen nul wordt. Schrijf een Prolog programma dec2bin/2: dec2bin(dec,bin) zet decimaal getal Dec om in binair Bin, gerepresenteerd als lijst. Werk voor decimale invoer groter dan nul met een accumulator. Hieronder alvast het grensgeval, en de wrapper die dec2bin/3 aanroept met [] als beginwaarde voor de accumulator. Je kan de ingebouwde rekenpredicaten gebruiken: N//M voor delen afgerond op gehele getallen, en N mod M voor modulo rekenen. Hieronder een illustratie van de werking van die rekenpredicaten. dec2bin(0,[0]). dec2bin(n,bin) :- N>0, dec2bin(n,[],bin).?- X is 5//2.?- X is 5 mod 2. X = 2. X = 1. 4

5 Opgave 8 Een binaire boom is leeg, of hij bestaat uit een wortelknoop met een linker en een rechter dochterboom, waarbij die dochters zelf binaire bomen zijn. De lege boom representeren we in Prolog als [], een niet-lege boom als een term t(links,knoop,rechts). We noemen een binaire boom welgebalanceerd als voor elke knoop geldt dat het aantal knopen in zijn linker en rechter dochterboom op zijn hoogst met één verschillen. Hieronder de vier mogelijkheden om een welgebalanceerde boom met vier knopen te maken. Definieer een predicaat balans/2 waarmee je de welgebalanceerde binaire bomen genereert. balans(n,boom) slaagt als Boom een welgebalanceerde boom is met N knopen. Het aantal knopen druk je uit als een natuurlijk getal in successornotatie. De aanroep die de vier bomen van het plaatje hierboven genereert ziet er als volgt uit.?- balans(s(s(s(s(0)))),boom). Boom = t(t(t([], _, []), _, []), _, t([], _, [])) ; Boom = t(t([], _, t([], _, [])), _, t([], _, [])) ; Boom = t(t([], _, []), _, t(t([], _, []), _, [])) ; Boom = t(t([], _, []), _, t([], _, t([], _, []))) ; false. Het basisgeval voor balans/2 is eenvoudig: de lege boom is de enige welgebalanceerde boom met nul knopen. Voor het recursieve geval heb je een knoop nodig voor de wortel. Er blijft een even of oneven aantal knopen over die je dan over de linker en rechter dochters van de wortel 5

6 kan verdelen. Zoals bij de opgave over modulo rekenen is add/3 het enige hulppredicaat dat je mag gebruiken. Opgave 9 Een postorder traversal van een binaire boom bezoekt de knopen van de linker en rechter deelboom in postorder volgorde, gevolgd door de wortelknoop. Bijvoorbeeld: a b c d e?-b = t(t(_,a,_),b,t(t(_,c,_),d,t(_,e,_))), postorder(b,lijst). Lijst = [a,c,e,d,b]. Hieronder een naieve definitie van postorder/2 die gebruik maakt van append/3. postorder(t(l,x,r),knopen):- postorder(l,linkerknopen), postorder(r,rechterknopen), append(rechterknopen,[x],rechts), append(linkerknopen,rechts,knopen). postorder([],[]). Werk de append/3 aanroepen weg door gebruik te maken van verschillijsten. De wrapper: postorder(boom,knopen) :- postorder(boom,knopen,[]). 6

7 Opgave 10 Het ingebouwde findall/3 gebruik je om alle oplossingen voor een vraag in een lijst te verzamelen: findall(object,goal,list) slaagt als List de lijst van objecten Object is die voldoen aan Goal. Bijvoorbeeld:?- findall(prefix,append(prefix,_,[a,b,c,d]),lijst). Lijst = [[], [a], [a, b], [a, b, c], [a, b, c, d]]. Hieronder de definitie van shuffle/3 voor het in elkaar voegen van twee lijsten. shuffle([],[],[]). shuffle([h R],S,[H T]) :- shuffle(r,s,t). shuffle(r,[h S],[H T]) :- shuffle(r,s,t). Laten we een verzameling representeren als een lijst zonder herhalingen. Gebruik findall/3 en shuffle/3 om een definitie te geven van powerset/2: powerset(set,subsets) slaagt als Subsets de lijst van deelverzamelingen is van de verzameling Set. Bijvoorbeeld:?- powerset([1,2,3],l). L = [[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], []]. 7

Inleiding Logica 2013

Inleiding Logica 2013 Inleiding Logica 2013 Praktica Logisch Programmeren 21, 28 oktober 2013 1 Stamboom Op deze wiki pagina vind je een stukje stamboom van een willekeurige familie. Opgave 1 Vertaal die stamboom, beginnend

Nadere informatie

Modelleren en programmeren. Week 9: werken met incomplete datastructuren

Modelleren en programmeren. Week 9: werken met incomplete datastructuren Modelleren en programmeren Week 9: werken met incomplete datastructuren 1. Incomplete datastructuren Een krachtige programmeertechniek is het gebruik van incomplete datastructuren: datastructuren die variabelen

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

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

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

Wouter Geraedts Processen & Processoren

Wouter Geraedts Processen & Processoren FACULTEIT DER NATUURWETENSCHAPPEN, WISKUNDE EN INFORMATICA Wouter Geraedts Overzicht Welkom op het werkcollege van Processen & Processoren! Gang van zaken Behandelen oefenopgaven w.geraedts@student.ru.nl

Nadere informatie

Logisch programmeren 2012

Logisch programmeren 2012 Logisch programmeren 2012 Opdrachten Week 8 1 Fibonacci woorden Een Fibonacci woord is een eindig rijtje over het twee-letter alfabet {1, 2}. De rangorde van een Fibonacci woord w is de som van de samenstellende

Nadere informatie

2 REKENEN MET BREUKEN 3. 2.3 Optellen van breuken 6. 2.5 Aftrekken van breuken 9. 2.7 Vermenigvuldigen van breuken 11. 2.9 Delen van breuken 13

2 REKENEN MET BREUKEN 3. 2.3 Optellen van breuken 6. 2.5 Aftrekken van breuken 9. 2.7 Vermenigvuldigen van breuken 11. 2.9 Delen van breuken 13 REKENEN MET BREUKEN. De breuk. Opgaven. Optellen van breuken 6. Opgaven 8. Aftrekken van breuken 9.6 Opgaven 9.7 Vermenigvuldigen van breuken.8 Opgaven.9 Delen van breuken.0 Opgaven. Een deel van een deel.

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

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

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

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

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

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

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Uitwerking tentamen Algoritmiek 10 juni :00 13:00 Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.

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

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Getaltheorie groep 3: Primitieve wortels

Getaltheorie groep 3: Primitieve wortels Getaltheorie groep 3: Primitieve wortels Trainingsweek juni 2008 Inleiding Voor a relatief priem met m hebben we de orde van a modulo m gedefinieerd als ord m (a) = min { n Z + a n 1 (mod m) }. De verzameling

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

Reken zeker: leerlijn kommagetallen

Reken zeker: leerlijn kommagetallen Reken zeker: leerlijn kommagetallen De gebruikelijke didactische aanpak bij Reken Zeker is dat we eerst uitleg geven, vervolgens de leerlingen flink laten oefenen (automatiseren) en daarna het geleerde

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

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

2 Recurrente betrekkingen

2 Recurrente betrekkingen WIS2 1 2 Recurrente betrekkingen 2.1 Fibonacci De getallen van Fibonacci Fibonacci (= Leonardo van Pisa), 1202: Bereken het aantal paren konijnen na één jaar, als 1. er na 1 maand 1 paar pasgeboren konijnen

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

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

Rekenen met cijfers en letters

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

Nadere informatie

Werkboekje

Werkboekje Staartdeling Werkboekje www.roykenen.nl Inhoud Uitleg Staartdeling... 2 Opgave 1... 2 Opgave 2... 5 Deler is groter dan eerste cijfer deeltal... Opgave 3... Opgave... 8 Staartdeling met een rest... 9 Opgave

Nadere informatie

Algoritmiek. 15 februari Grafen en bomen

Algoritmiek. 15 februari Grafen en bomen Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van

Nadere informatie

ANTWOORDEN blz. 1. d. 345 + 668 = 1013; 61 007 + 50 215 = 111 222; 102 240 30 628 = 71 612; 1 000 000 1 = 999 999

ANTWOORDEN blz. 1. d. 345 + 668 = 1013; 61 007 + 50 215 = 111 222; 102 240 30 628 = 71 612; 1 000 000 1 = 999 999 ANTWOORDEN blz. 3 a. Zeer onwaarschijnlijk Zeer onwaarschijnlijk a. Dan heb je ergens een schuld uitstaan 86 Dan hadden beide een kopie van de kerfstok; om fraude te voorkomen a. MMXII, MCCCXXVII, DLXXXVI,

Nadere informatie

Datastructuren Uitwerking jan

Datastructuren Uitwerking jan Datastructuren Uitwerking jan 16 1 1a) Een ADT wordt gekenmerkt door de opgeslagen gegevens en de beschikbare operaties. De Priority Queue bevat en verzameling elementen waarbij elk element en eigen waarde

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

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

Nadere informatie

Het Breukenboekje. Alles over breuken

Het Breukenboekje. Alles over breuken Het Breukenboekje Alles over breuken breuken breukentaal tekening getal een hele 1 een halve een kwart een achtste ½ of ½ ¼ of ¼ ⅛ of ⅛ 3 breuken breukentaal tekening getal een vijfde ⅕ of ⅕ een tiende

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

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

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

2.0 Voorkennis. Rekenregels machten: 5) a 0 = 1. p p q p q a p q q. p q pq p p p. Willem-Jan van der Zanden

2.0 Voorkennis. Rekenregels machten: 5) a 0 = 1. p p q p q a p q q. p q pq p p p. Willem-Jan van der Zanden 2.0 Voorkennis Voorbeeld: (a + b) 2 = a 2 + 2ab + b 2 (a + b) 3 = (a +b)(a2 + 2ab + b2) = a 3 + 2a 2 b + ab 2 + a 2 b +2ab 2 + b 3 = a 3 + 3a 2 b + 3ab 2 + b 3 Rekenregels machten: p p q pq a pq 1) a a

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

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen Hoofdstuk 3 Equivalentierelaties SCHAUM 2.8: Equivalence Relations Twee belangrijke voorbeelden van equivalentierelaties in de informatica: resten (modulo rekenen) en cardinaliteit (aftelbaarheid). 3.1

Nadere informatie

Oplossing van opgave 6 en van de kerstbonusopgave.

Oplossing van opgave 6 en van de kerstbonusopgave. Oplossing van opgave 6 en van de kerstbonusopgave. Opgave 6 Lesbrief, opgave 4.5 De getallen m en n zijn verschillende positieve gehele getallen zo, dat de laatste drie cijfers van 1978 m en 1978 n overeenstemmen.

Nadere informatie

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde 8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde Optellen: 5a + 3b + 2a + 6b = 7a + 9b 1) Alleen gelijksoortige

Nadere informatie

Aanvullende tekst bij hoofdstuk 1

Aanvullende tekst bij hoofdstuk 1 Aanvullende tekst bij hoofdstuk 1 Wortels uit willekeurige getallen In paragraaf 1.3.5 hebben we het worteltrekalgoritme besproken. Dat deden we aan de hand van de relatie tussen de (van tevoren gegeven)

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

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

Practicum Programmeerprincipes

Practicum Programmeerprincipes REEKS 3 Practicum Programmeerprincipes 2009-2010 fvdbergh@vub.ac.be WERKEN MET FUNCTIES IN PICO Functies, controlestructuren, recursie, iteratie, blokstructuren en functionele parameters in Pico. Het woordenboek

Nadere informatie

3.1 Haakjes wegwerken [1]

3.1 Haakjes wegwerken [1] 3.1 Haakjes wegwerken [1] Oppervlakte rechthoek (Manier 1): Opp. = l b = (a + b) c = (a + b)c Oppervlakte rechthoek (Manier 2): Opp. = Opp. Groen + Opp. Rood = l b + l b = a c + b c = ac + bc We hebben

Nadere informatie

II.3 Equivalentierelaties en quotiënten

II.3 Equivalentierelaties en quotiënten II.3 Equivalentierelaties en quotiënten Een belangrijk begrip in de wiskunde is het begrip relatie. Een relatie op een verzameling is een verband tussen twee elementen uit die verzameling waarbij de volgorde

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

Zevende college Algoritmiek. 6 april Verdeel en Heers

Zevende college Algoritmiek. 6 april Verdeel en Heers Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)

Nadere informatie

Combinatoriek groep 1

Combinatoriek groep 1 Combinatoriek groep 1 Recursie Trainingsdag 3, 2 april 2009 Getallenrijen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een directe formule geeft a n in

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

OPLOSSINGEN VAN DE OEFENINGEN

OPLOSSINGEN VAN DE OEFENINGEN OPLOSSINGEN VAN DE OEFENINGEN 1.3.1. Er zijn 42 mogelijke vercijferingen. 2.3.4. De uitkomsten zijn 0, 4 en 4 1 = 4. 2.3.6. Omdat 10 = 1 in Z 9 vinden we dat x = c 0 +... + c m = c 0 +... + c m. Het getal

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

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

Reken zeker: leerlijn kommagetallen

Reken zeker: leerlijn kommagetallen Reken zeker: leerlijn kommagetallen De gebruikelijke didactische aanpak bij Reken Zeker is dat we eerst uitleg geven, vervolgens de leerlingen flink laten oefenen (automatiseren) en daarna het geleerde

Nadere informatie

Deeltoets Digitale technieken

Deeltoets Digitale technieken Deeltoets Digitale technieken André Deutz 22 oktober, 2007 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

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

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe

Nadere informatie

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde 8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde Optellen: 5a + 3b + 2a + 6b = 7a + 9b 1) Alleen gelijksoortige

Nadere informatie

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter Voorbereidende opgaven VWO Examencursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

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

1.3 Rekenen met pijlen

1.3 Rekenen met pijlen 14 Getallen 1.3 Rekenen met pijlen 1.3.1 Het optellen van pijlen Jeweetnuwatdegetallenlijnisendat0nochpositiefnochnegatiefis. Wezullen nu een soort rekenen met pijlen gaan invoeren. We spreken af dat bij

Nadere informatie

8.0 Voorkennis ,93 NIEUW

8.0 Voorkennis ,93 NIEUW 8.0 Voorkennis Voorbeeld: In 2014 waren er 12.500 speciaalzaken. Sinds 2012 is het aantal speciaalzaken afgenomen met 7%. Bereken hoeveel speciaalzaken er in 2012 waren. Aantal 2014 = 0,93 Aantal 2012

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

Bij het cijferend optellen beginnen we bij de eenheden en werken we van rechts naar links:

Bij het cijferend optellen beginnen we bij de eenheden en werken we van rechts naar links: Cijferend optellen t/m 1000 Voor u ligt de verkorte leerlijn cijferend optellen groep 5 van Reken zeker. Deze verkorte leerlijn is bedoeld voor de leerlingen die nieuw instromen in groep 6 en voor de leerlingen

Nadere informatie

Modelleren en Programmeren: Prolog

Modelleren en Programmeren: Prolog Modelleren en Programmeren: Prolog Marijn Schraagen 13 januari 2016 Herhaling basiselementen Lijsten Trace Ingebouwde lijstpredicaten Feiten en regels aanpassen Herhaling basiselementen Feiten en regels

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 1 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

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

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

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

5.0 Voorkennis. Rekenen met machten: Let op het teken van de uitkomst; Zet de letters (indien nodig) op alfabetische volgorde.

5.0 Voorkennis. Rekenen met machten: Let op het teken van de uitkomst; Zet de letters (indien nodig) op alfabetische volgorde. 5.0 Voorkennis Rekenen met machten: Let op het teken van de uitkomst; Zet de letters (indien nodig) op alfabetische volgorde. Vermenigvuldigen is eponenten optellen: a 3 a 5 = a 8 Optellen alleen bij gelijknamige

Nadere informatie

1. REGELS VAN DEELBAARHEID.

1. REGELS VAN DEELBAARHEID. REKENEN VIJFDE KLAS Luc Cielen 1. REGELS VAN DEELBAARHEID. Deelbaarheid door 10, 100, 1000 10: het laatste cijfer (= cijfer van de eenheden) is 0 100: laatste twee cijfers zijn 0 (cijfers van de eenheden

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

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

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

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

Zevende college algoritmiek. 23/24 maart Verdeel en Heers Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht

Nadere informatie

Uitwerking Puzzel 93-1, Doelloos

Uitwerking Puzzel 93-1, Doelloos Uitwerking Puzzel 93-1, Doelloos Wobien Doyer Lieke de Rooij Volgens de titel is deze puzzel zonder doel, dus zonder bekende toepassing. Het doel is echter nul en dat is zeker in de wiskunde niet niks.

Nadere informatie

b) Teken op de bijlage welke lampjes van het klokje branden om 19:45:52. Schrijf eronder hoe je dit bepaald/berekend hebt. (3p)

b) Teken op de bijlage welke lampjes van het klokje branden om 19:45:52. Schrijf eronder hoe je dit bepaald/berekend hebt. (3p) NATUURKUNDE KLAS 4 PW HOOFDSTUK PW HOOFDSTUK 3-23/03/2011 Totaal: 3 opgaven, 29 punten. Gebruik eigen BINAS toegestaan. Opgave 1: binair klokje Er bestaan klokjes die de tijd binair weergeven. Zie figuur

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

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:

Nadere informatie

3.2 Basiskennis. 3.2.1 De getallenlijn. 3.2.2 Symbolen, tekens en getallen. 92 Algebra. Inhoofdstuk1zijnaandeordegeweest: Het=teken. =staat.

3.2 Basiskennis. 3.2.1 De getallenlijn. 3.2.2 Symbolen, tekens en getallen. 92 Algebra. Inhoofdstuk1zijnaandeordegeweest: Het=teken. =staat. 92 Algebra 3.2 Basiskennis Inhoofdstuk1zijnaandeordegeweest: 3.2.1 De getallenlijn... -5-4 -3-2 -1 0 1 2 3 4 5... 3.2.2 Symbolen, tekens en getallen Het=teken 5+2+3=10 = geeft aan dat wat links van = staat,

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

Zevende college algoritmiek. 24 maart Verdeel en Heers

Zevende college algoritmiek. 24 maart Verdeel en Heers Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties

Nadere informatie

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Tweede college complexiteit. 12 februari Wiskundige achtergrond College 2 Tweede college complexiteit 12 februari 2019 Wiskundige achtergrond 1 Agenda vanmiddag Floor, Ceiling Rekenregels logaritmen Tellen Formele definitie O, Ω, Θ met voorbeelden Stellingen over faculteiten

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

Start u met zwiso in verschillende leerjaren tegelijkertijd?

Start u met zwiso in verschillende leerjaren tegelijkertijd? Start u met zwiso in verschillende leerjaren tegelijkertijd? Start u met zwiso in verschillende leerjaren tegelijkertijd? Geef dan eventueel aan het begin van het schooljaar enkele lessen uit het voorafgaande

Nadere informatie

5.4.2 a. Neen: dit lukt alléén met 1, 3, 7 enzovoort. b. Ja: dit lukt met elk aantal knopen! Bijvoorbeeld de volgende boom: 1

5.4.2 a. Neen: dit lukt alléén met 1, 3, 7 enzovoort. b. Ja: dit lukt met elk aantal knopen! Bijvoorbeeld de volgende boom: 1 c. het langste gerichte pad: 4 2 3 met lengte twee. d. het langste on -gerichte pad is oneindig lang: je mag bijvoorbeeld voortdurend tussen twee knopen heen en weer wandelen. e. ja: elke knoop heeft maximaal

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

Nadere informatie

Kennismaking met programmeren

Kennismaking met programmeren Kennismaking met programmeren werkblad binair tellen Project van de Pedagogische Academie, Hanzehogeschool Groningen en Groningen Programmeert in samenwerking met: Bij deze opdracht gaan jullie zelf leren

Nadere informatie

Examen Datastructuren en Algoritmen II

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

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

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren

Nadere informatie

Practicumopgave 3: SAT-solver

Practicumopgave 3: SAT-solver Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

3.1 Negatieve getallen vermenigvuldigen [1]

3.1 Negatieve getallen vermenigvuldigen [1] 3.1 Negatieve getallen vermenigvuldigen [1] Voorbeeld 1: 5 3 = 15 (3 + 3 + 3 + 3 + 3 = 15) Voorbeeld 2: 5-3 = -15 (-3 +-3 +-3 +-3 +-3 = -3-3 -3-3 -3 = -15) Voorbeeld 3: -5 3 = -15 Voorbeeld 4: -5 3 9 2

Nadere informatie

Kernbegrippen Handig met getallen 1, onderdeel Bewerkingen

Kernbegrippen Handig met getallen 1, onderdeel Bewerkingen Kernbegrippen Handig met getallen 1, onderdeel Bewerkingen 1.12 Kernbegrippen van de Kennisbasis Hele getallen, onderdeel Bewerkingen Aftrekker De aftrekker in een aftreksom is het getal dat aangeeft hoeveel

Nadere informatie

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search Overzicht Inleiding Toepassingen Verwante problemen Modellering Exacte oplosmethode: B&B Insertie heuristieken Local Search Handelsreizigersprobleem 1 Cyclische permutatie van steden b 3 77 a 93 21 42

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018

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

Nadere informatie