Leeswijzer Functioneel Programmeren

Maat: px
Weergave met pagina beginnen:

Download "Leeswijzer Functioneel Programmeren"

Transcriptie

1 Leeswijzer Functioneel Programmeren Jeroen Fokker 23 oktober 2000 Dit artikel beschrijft in het kort welke onderwerpen behandeld worden in het kollege Functioneel Programmeren en het gelijknamige diktaat. Voor een aantal beslissingen wordt ook een motivatie gegeven. In deze beschrijving komen wiskundige begrippen voor die niet expliciet (maar wel impliciet!) in de stof voorkomen. Aan de andere kant wordt van de lezer van deze beschrijving geen voorkennis van functioneel programmeren of van de gebruikte programmeertaal verondersteld. Elke hoofdstuk in deze beschrijving komt overeen met een hoofdstuk in het diktaat. Aan het eind van elk hoofdstuk wordt verwezen naar een klein aantal paragrafen waarin een kenmerkend of belangrijk concept wordt behandeld. Hoewel deze selectie niet representatief is (inleidende voorbeelden en syntactische details zijn niet in de selectie opgenomen), geven ze een goed beeld van het soort onderwerpen dat mij belangrijk lijkt. 1 Functioneel programmeren Een programma in de functionele programmeerstijl wordt beschreven als de definitie van een aantal functies (verband tussen parameters en resultaat). Bij het uitvoeren van een programma wordt één functie van parameters voorzien en wordt het resultaat berekend, zonder dat de programmeur precies hoeft voor te schrijven in welke volgorde dat gebeurt. In dit hoofdstuk wordt voornamelijk verteld hoe de interpreter bediend moet worden, en wat de syntax van de taal Gofer is. Wat betreft de interpreter: die evalueert in principe expressies (die gebruik maken van zelf- of voorgedefinieerde functies). Daarnaast kan de opdracht gegeven worden om de functiedefinities te herzien, een andere file met definities toe te voegen, of een expressie te typeren. Wat betreft de syntax van de taal zijn vooral de volgende notatie-conventies van belang: Bij aanroep van een functie mogen de haakjes worden weggelaten, omdat ze overbodig zijn, dus f x in plaats van f(x) Namen van functies bestaan voornamelijk uit letters; daarnaast zijn er infix-operatoren waarvan de naam uit symbolen bestaat. Operatoren kunnen ook zelf gedefinieerd worden. 1

2 Een functiedefinitie heeft de vorm f x = e, met f de naam van de functie, x een of meer formele parameters, en e een definiërende expressie. Een definitie met gevalsonderscheid heeft de vorm f x c 1 = e 1... c n = e n, waarbij c i een conditie is. De formele parameter mag behalve een naam ook een patroon zijn. Informeel kun je een patroon beschouwen als expressie waarin meerdere parameters voorkomen, waarvan de waarde eenduiding vastligt na unificatie met een actuele parameter. In de sectie Typering wordt beschreven dat elke expressie een type heeft, hetgeen wordt genoteerd als e :: t. Er zijn basis-typen (Bool, Char, Int en Float) en lijst-typen (als t een type is, dan is [t] het type van lijsten met elementen van type t). Ook functies hebben een type: een functie met parametertype a en resultaattype b heeft type a->b. Bij functies met meerdere parameters worden de parametertypen onderling ook gescheiden door een pijltje. Deze notatie wordt hier zonder motivatie gegeven; de uitleg ervan (Currying) volgt in sectie 2.2. paragraaf op blz 18 over recursie, en hoe dit vooral in combinatie met patronen als formele parameters mogelijkheid biedt voor elegante definities. paragraaf op blz 25 over polymorfie. 2 Getallen en functies Dit hoofdstuk lijkt gewijd te zijn aan voorbeelden (van functies op resp. functies en getallen). Deze voorbeelden zijn echter zo gekozen, dat belangrijke ideeën er steeds in naar voren gebracht worden: generalisatie door invoeren van een extra parameter, partiële parametrizering, en hogere-orde functies. Eerst worden echter enkele conventies over operatoren behandeld: operatoren hebben een prioriteit (9 nivo s) en een associatievolgorde (links of rechts). Dat spaart in de praktijk een boel haakjes. Functies mogen functies als resultaat hebben, en mogen daarom partiëel geparametrizeerd worden. Zo kan de opvolger-functie gedefinieerd worden door opv = plus 1, in plaats van opv x = plus 1 x. De Curry-Howard connectie uit de verzamelingentheorie ((A B) C A (B C)) wordt in paragraaf op intuïtieve wijze uitgelegd. Dit verklaart ook de notatie voor functies met meerdere parameters, door af te spreken dat de het symbool -> in typen naar rechts associëert. Om ook operatoren partieel te kunnen parametrizeren wordt de zgn. sectie - notatie ingevoerd: (2*) is de verdubbelfunctie, (^2) de kwadraat-functie, enz. Als voorbeeld van hogere-orde functies worden behandeld: map en filter als eenvoudig voorbeeld van een functie met een functieparameter foldr om te demonstreren dat concrete functies waarvan de definities 2

3 sterk op elkaar lijken (sum en product) gegeneraliseerd kunnen worden door extra parameters in te voeren until als nog een voorbeeld van abstractie, maar ook omdat deze functie later in het hoofdstuk nodig is functiecompositie, omdat je daarmee zo mooi op functie-nivo definities kunt doen (f = g h). Omdat lijsten nauwelijks en andere datastructuren nog helemaal niet zijn behandeld, kunnen we naast functies op functies alleen functies op getallen als voorbeeld geven. Van zowel Int als Float is er een typisch voorbeeld: De functies voor deling met rest worden geïntroduceerd, en als toepassingen worden behandeld: genereren van een lijst priemgetallen (brute-force, maar wel elegant dankzij filter) en bepalen van de weekdag bij gegeven datum. Numeriek differentiëren door benadering met een differentiequotiënt (tevens voorbeeld van een hogere-orde functie, en bovendien kandidaat voor generalisatie met een nauwkeurigheid -parameter); bepaling van vierkantswortel door iteratie van Newton s formule; generalisatie: inverse van een willekeurige functie (met afleiding van Newton s formule). paragraaf op blz 35 over Currying, en eventueel over associatievolgorde van functie-applicatie paragraaf op blz 49 over generalisatie van wortel tot inverse. 3 Datastructuren In dit hoofdstuk wordt wat gedetailleerdere informatie gegeven over lijsten en andere datastructuren. Een aantal standaardfuncties op lijsten wordt behandeld: steeds in de vorm van een informele beschrijving en/of voorbeeld, en de formele definitie van de functie. Omdat deze definitie in de taal zelf gegeven kan worden, is er geen misverstand mogelijk over het gebruikte formalisme. Als toepassing van deze standaardfuncties behandelen we sorteren: insertion sort en merge sort. Strings zijn gedefinieerd als lijsten van characters, en van de gelegenheid wordt gebruik gemaakt om het noodzakelijke over characters te vertellen. Interessanter als theoretisch concept zijn oneindige lijsten, die mogelijk zijn dankzij lazy evaluatie. Als voorbeeld hiervan wordt o.a. de priemgetallen-zeef besproken, die dankzij oneindige lijsten zeer elegant geformuleerd kan worden. Naast lijsten (onbeperkt aantal elementen, één type) kent de taal tupels (vast aantal, verschillende typen). Als toepassing hiervan worden functies voor de manipulatie van rationale getallen besproken. Met een data-definitie kan een signatuur worden gedefinieerd. Het door zo n definitie gecreëerde type is het termmodel behorend bij deze signatuur. Dit mechanisme wordt ingevoerd als generalisatie van lijsten, waarbij de analogie tussen recursie over een lijst en recursie over de opbouw van een term gede- 3

4 monstreerd wordt. Als toepassing bekijken we zoekbomen (als analogon van gesorteerde lijsten) met insert, delete en enumerate en een daarop gebaseerd sorteeralgoritme. paragraaf op blz 63 over sorteeralgoritmen paragraaf 3.2.6, tweede voorbeeld onderaan blz 73 over de priemzeef m.b.v. oneindige lijsten paragraaf op blz. 83 over data-definities 4 Algoritmen op lijsten In dit hoofdstuk worden geen nieuwe theoretische concepten behandeld, maar worden drie meer ingewikkelde voorbeelden gegeven van functies op lijsten: combinatorische functies, matrixrekening, en polynoom-manipulatie. Kennis over deze drie toepassingsgebieden die wordt behandeld is mooi meegenomen. De redenen dat juist voor deze toepassingen is gekozen zijn: Combinatorische functies zijn een leuk voorbeeld van functies met lijsten van lijsten als resultaat. De definities bieden een herhaling van zowel gebruik van standaardfuncties als van inductie. Bij de functie die combinaties uitrekent een aardig geval van dubbele inductie (zie blz 102). De operaties op vectoren en matrices worden in wiskundeboeken vaak gedefinieerd met veel indices; het is leuk om te zien dat dit ook kan met gebruikmaking van standaardfuncties op lijsten. De functie transpose blijkt zelfs een speciaal geval te zijn van foldr (zie blz 110), en het ingewikkelde algoritme voor de bepaling van de determinant kan zeer nauwkeurig worden opgeschreven (zie blz 115). Polynoom-manipulatie is een goed voorbeeld van symbolische expressiemanipulatie. In dit voorbeeld komt tevens ter sprake dat je sorteerfuncties kunt parametriseren met een vergelijkings-functie. In hoofdstuk 6 wordt gesproken over geparametriseerde typen; dankzij dit voorbeeld kunnen we dan spreken van polynomen met rationale getallen als coëfficiënt. 5 Programmatransformatie In dit hoofdstuk wordt gesproken over de (asymptotische) efficiëntie van functies. Het verbeteren van de efficiëntie wordt als aanleiding gebruikt om programmatransformatie te bestuderen, en meer in het bijzonder wetten te bewijzen. Wetten en hun bewijs blijken daarna ook om andere redenen dan efficiëntie-verhoging nuttig te zijn. Voor de efficiëntie wordt de O-notatie informeel geïntroduceerd Aan de hand hiervan worden recursieve functies in 8 soorten verdeeld: één of twee recursieve aanroepen, parameter van de recursieve aanroep 1 kleiner of half zo groot, vervolgwerk na de recursieve aanroepen constant of lineair. In bijna alle gevallen wordt een voorbeeld uit eerdere hoofdstukken opgerakeld en wordt de 4

5 complexiteit bepaald. Aan de hand van deze classificatie worden heuristieken besproken om de efficiëntie te verbeteren: één in plaats van twee recursieve aanroepen, parameter halveren i.p.v. verminderen, constant i.p.v. lineair vervolgwerk. Dit alles steeds toegelicht met een voorbeeld ( mergesort in plaats van insertion sort ). Over efficiëntie met betrekking tot geheugen wordt kort iets gezegd over stackgebruik bij recursie en lazy evaluatie: deels om de foutmelding stackoverflow te verklaren, en deels om het nut van de tweede dualiteitswet uit de volgende paragraaf te motiveren. Het nut van wetten wordt gemotiveerd door de analogie met de rekenkunde en de logica op te merken. Alle wetten in het diktaat hebben de vorm van een gelijkheid, en worden bewezen met een equationeel bewijs. Deze bewijzen verlopen in de meeste gevallen met inductie. Voor zo n inductiebewijs wordt een speciaal stramien gebruikt (zie blz ; representatief voorbeeld blz 141). In de kolommen van dit stramien worden de linker- en rechterkant van de vergelijking apart uitgewerkt en aan elkaar gelijk gepraat. Dit heeft als voordeel dat je in de praktijk ook in deze volgorde een bewijs bedenkt; zou je dit in één kolom opschrijven dan heeft de tweede helft van het bewijs onnodige eureka -stappen. De rijen van het stramien vertegenwoordigen de volgende onderdelen: formulering van de wet op functie nivo; overeenkomstige formulering op object-nivo (door toepassing van extensionaliteit); bewijs van de inductiebasis; bewijs van de inductiestap, waarbij op de laatste regel de inductiehypothese te herkennen is. De reden dat dit stramien gebruikt wordt is dat studenten in de praktijk grote moeite hebben met het formuleren van een free-format inductiebewijs. Valkuilen zoals geval n = n + 1 liggen daarbij dan ook overal op de loer. Dankzij dit stramien kunnen ook ingewikkelde dubbele inducties overzichtelijk worden weergegeven (zie blz 151). Nadat de stramien-methode is ingevoerd (overigens zonder die te expliciteren zoals hierboven) worden wetten achtereenvolgens voor drie doeleinden gebruikt: Verbetering van efficiëntie (reverse lineair ipv kwadratisch; fibon logaritmisch ipv lineair). Voor het beschrijven van eigenschappen van functies, met het doel daar meer inzicht in te krijgen. Vooral over hoe de lengte van een lijst verandert onder map, concat en onder combinatorische functies. Om nieuwe begrippen in te voeren: een functie heet combinatorisch als hij voldoet aan de wet.... Zelfs het begrip polymorf kan op deze manier gedefinieerd worden. Als slot wordt de bewijsmethode gebruikt om allerlei wetten te bewijzen over de natuurlijke getallen. De natuurlijke getallen en functies voor optellen, vermenigvuldigen en machtsverheffen worden voor dit doel eerst inductief gedefinieerd. paragraaf op blz 140, waarin de stramien-methode informeel wordt geïntroduceerd het bewijs op blz 151, waarin de stramien-methode in een niet-triviaal 5

6 geval wordt gebruikt het eind van paragraaf op blz 154, waarin wordt voorbereid op het catagorie-theoretische begrip natuurlijke transformatie paragraaf op blz 155; ik heb het idee dat het probleem constructie van getalsystemen in deze benadering eerder aanspreekt dan in een klassieke behandeling met Peano-axioma s e.d. 6 Klassen en hun instances Eén van de aardige eigenschappen van de taal Gofer is de mogelijkheid om overloaded functies te definiëren. Dat zijn functies die op verschillende typen kunnen werken, waarbij de definitie (anders dan bij polymorfe functies) niet uniform hoeft te zijn. Voor deze mogelijkheid is het concept klasse geschapen. Zo is er bijvoorbeeld de klasse Num, bestaande uit alle types waarop de numerieke operatoren +, * enz gedefinieerd zijn. In de prelude wordt gespecificeerd dat Int en Float tot deze klasse behoren, maar het is ook mogelijk (met een instance-declaratie ) om zelf nieuwe typen aan een klasse toe te voegen (bijvoorbeeld rationale getallen, complexe getallen, of polynomen). Bovendien is het mogelijk om zelf nieuwe klassen te definiëren. In dit hoofdstuk worden al deze mogelijkheden besproken. Daarbij worden als voorbeeld drie in de prelude gedefinieerde klassen gebruikt: Num (numerieke typen), Eq (typen waarop een gelijkheid is gedefinieerd) en Ord (typen waarop een ordening is gedefinieerd). Aan de hand van deze voorbeelden worden defaultdefinities ( ongelijkheid is voor alle Eq-typen de ontkenning van gelijkheid ) en voorwaardelijke instances ( lijsten kunnen geordend worden mits de elementen geordend kunnen worden ) besproken. Een beperking van het klasse-systeem is, dat je niet kunt specificeren dat de operatoren die op alle typen in een klasse zijn gedefinieerd, ook aan bepaalde wetten moeten voldoen. Als voorbeeld hiervan worden de wetten genoemd waaraan een equivalentierelatie en een partiële ordening moet voldoen. Ik denk dat het, zeker voor informatici, de duidelijkheid ten goede komt om deze abstracte begrippen op deze manier in te voeren. Om dit nog eens te demonstreren wordt in paragraaf de klassieke hierarchie van algebraïsche structuren ingevoerd: Monoid, Groep, Ring, Euclid en Lichaam. Het definiëren van die klassen is niet het interessantste, leuk wordt het pas door instances ervan te definiëren. Dit culmineert in de programmatekst die aantoont: polynomen vormen een Euclidische ring, mits de coëfficiënten een lichaam vormen. Dergelijke abstracte formuleringen zijn in slechts weinig programmeertalen mogelijk. paragraaf op blz 169, waarin een formele definitie van lexicografische ordening wordt gegeven paragraaf op blz 174, waarin equivalentierelaties en partiële ordeningen worden geaxiomatiseerd 6

7 het voorbeeld op blz , waarin deling van polynomen over een willekeurig lichaam wordt geformuleerd opgave 6.4 en 6.7 en 6.12 op blz 188, die nog twee voorbeelden geven van hoe matematische noties gepresenteerd kunnen worden als programmeerprobleem. 7 Programmeertechnieken In dit hoofdstuk wordt een drietal programmeertechnieken behandeld, die typisch zijn voor het functionele programmeerparadigma: expressiebomen, functionele I/O, en ontleding. Dit jaar zijn overigens alleen de expressiebomen behandeld. Rekenkundige expressies kunnen ontleed worden tot een ontleedboom. Zo n ontleedboom kan eenvoudig worden gerepresenteerd met een boom-datatype (zie blz 191). Een als ontleedboom gerepresenteerde expressie kan symbolisch gemanipuleerd worden (iets wat, als je het computer-algebra noemt tegenwoordig erg in de mode is). Typisch voorbeeld is symbolisch differentiëren (blz 193). Dit vormt trouwens een leuk contrast met numeriek differentiëren uit hoofdstuk 1. Een tweede voorbeeld van expressiebomen vormen de proposities, waarvan de taal beschreven wordt door de declaratie op blz 193. Symbolische manipulaties op proposities (zoals het schrijven van en met behulp van en ) laten zich nu eenvoudig formuleren. Eén van de praktikumopgaven van dit jaar sloot aan op dit voorbeeld. Gegeven een declaratie die de taal van de predicatenlogica beschrijft, moesten de studenten algorimten formuleren voor diverse symbolische manipulaties, waaronder het bepalen van de disjunctieve normaalvorm en de prenex-normaalvorm. De sectie over I/O is voornamelijk toegevoegd om het argument te ontkrachten dat functionele talen niet gebruikt kunnen worden voor echte programma s. De daarvoor benodigde techniek ( continuatie-parameters ) wordt echter ook gebruikt in de mathematische semantiek van programmeertalen, zodat dit onderwerp goed voorbereidt op bestudering daarvan. De sectie over ontleden is een mooi voorbeeld van (zeer-)hogere orde functies. Een ontleder is voor te stellen als functie die een string omzet in een ontleedboom (en een reststring). Uit een paar elementaire ontleders (bijvoorbeeld getal, en keyword ) kunnen nu grotere ontleders worden samengesteld door middel van ontleder-combinators voor sequentiële en alternatieve compositie. Als voorbeeld wordt gegeven hoe een ontleder voor rekenkundige expressies kan worden gemaakt, en hoe je zelf nieuwe ontleder-combinators kunt maken om in de toekomst nog eenvoudiger ontleders te maken. 7

College Notatie, Recursie, Lijsten

College Notatie, Recursie, Lijsten College 2016-2017 2. Notatie, Recursie, Lijsten Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Functieapplicatie functieapplicatie associeert naar links: als x in f x y moet kiezen

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

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

College Introductie

College Introductie College 2016-2017 Introductie Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Waarom is FP anders? in plaats van opdrachten die na elkaar moeten worden uitgevoerd, definiëren we

Nadere informatie

Hoofdstuk 1. Inleiding. Lichamen

Hoofdstuk 1. Inleiding. Lichamen Hoofdstuk 1 Lichamen Inleiding In Lineaire Algebra 1 en 2 heb je al kennis gemaakt met de twee belangrijkste begrippen uit de lineaire algebra: vectorruimte en lineaire afbeelding. In dit hoofdstuk gaan

Nadere informatie

Functioneel Programmeren

Functioneel Programmeren Functioneel Programmeren ii c Copyright 1992 2003 Informatica-instituut, Universiteit Utrecht Deze tekst mag voor educatieve doeleinden gereproduceerd worden op de volgende voorwaarden: de tekst wordt

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

Functioneel Programmeren

Functioneel Programmeren Functioneel Programmeren ii c Copyright 1992 2002 Informatica-instituut, Universiteit Utrecht Deze tekst mag voor educatieve doeleinden gereproduceerd worden op de volgende voorwaarden: de tekst wordt

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

1 Recurrente betrekkingen

1 Recurrente betrekkingen WIS1 1 1 Recurrente betrekkingen 1.1 De torens van Hanoi De torens van Hanoi Edouard Lucas, 1884: Gegeven 3 pinnen en 64 schijven van verschillende grootte. Startsituatie: 64 op linkerpin, geordend naar

Nadere informatie

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element. Hoofdstuk 2 De regels van het spel 2.1 De gehele getallen Grof gezegd kunnen we de (elementaire) getaltheorie omschrijven als de wiskunde van de getallen 1, 2, 3, 4,... die we ook de natuurlijke getallen

Nadere informatie

2IA05 Functioneel Programmeren

2IA05 Functioneel Programmeren 2IA05 Functioneel Programmeren wk1: Introductie Rik van Geldrop, Jaap van der Woude Declaratieve programmeerstijl 2/20 2 H C H = A A H I JE A 1 F A H = JEA B, A? = H = JEA B D A M = J. K? JE A A C EI?

Nadere informatie

Wat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type.

Wat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type. Wat is FP? The Haskell School of Expression Functioneel Programmeren Een andere manier om tegen programmeren aan te kijken Gebaseerd op het uitrekenen van expressies 1+1=2 Eenvoudig maar krachtig (modulair,

Nadere informatie

Aanvullingen bij Hoofdstuk 8

Aanvullingen bij Hoofdstuk 8 Aanvullingen bij Hoofdstuk 8 8.5 Definities voor matrices De begrippen eigenwaarde eigenvector eigenruimte karakteristieke veelterm en diagonaliseerbaar worden ook gebruikt voor vierkante matrices los

Nadere informatie

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur 1 Inleiding inleiding theoretische informatica 2007-2008 practicum 1 deadline woensdag 20 februari 2008 om 14.00 uur Dit practicum is een kennismaking met functioneel programmeren. Twee belangrijke functionele

Nadere informatie

2IA05 Functioneel Programmeren

2IA05 Functioneel Programmeren 2IA05 Functioneel Programmeren wk1: Introductie Rik van Geldrop, Jaap van der Woude Declaratieve programmeerstijl 2/13 2 H C H = A A H I JE A 1 F A H = JEA B, A? = H = JEA B D A M = J. K? JE A A C EI?

Nadere informatie

Law and Order in Algorithmics

Law and Order in Algorithmics Law and Order in Algorithmics Maarten Fokkinga Vakgroep SETI, fac INF, Universiteit Twente Versie van May 25, 1993 Algoritmiek (engels: algorithmics) is de theorie en praktijk van het algebraïsch redeneren

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

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen.

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen. Hoofdstuk 7 Volledige inductie Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen we het volgende: (i) 0 V (ii) k N k V k + 1 V Dan is V = N. Men ziet dit als

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

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

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

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

Zelftest Inleiding Programmeren

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

Nadere informatie

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

Ter Leering ende Vermaeck

Ter Leering ende Vermaeck Ter Leering ende Vermaeck 15 december 2011 1 Caleidoscoop 1. Geef een relatie op Z die niet reflexief of symmetrisch is, maar wel transitief. 2. Geef een relatie op Z die niet symmetrisch is, maar wel

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

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

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma Voorwoord Dit zijn aantekeningen voor het vak Discrete Wiskunde (2WC15), gegeven in het lentesemester van 2010. Dit vak bestaat uit twee delen: algoritmische

Nadere informatie

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Herman Geuvers Radboud Universiteit Nijmegen Technische Universiteit Eindhoven 1 Helden van de wiskunde:

Nadere informatie

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!

Linalg.nb 1. Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes! Linalg.nb Lineaire Algebra Andr Heck AMSTEL Instituut, Universiteit van Amsterdam Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes! Å Introductie

Nadere informatie

Rekenen aan wortels Werkblad =

Rekenen aan wortels Werkblad = Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden

Nadere informatie

Bijzondere kettingbreuken

Bijzondere kettingbreuken Hoofdstuk 15 Bijzondere kettingbreuken 15.1 Kwadratische getallen In het vorige hoofdstuk hebben we gezien dat 2 = 1, 2, 2, 2, 2, 2, 2,.... Men kan zich afvragen waarom we vanaf zeker moment alleen maar

Nadere informatie

Semantiek (2IT40) Bas Luttik. HG 7.14 tel.: Hoorcollege 8 (7 juni 2007)

Semantiek (2IT40) Bas Luttik.  HG 7.14 tel.: Hoorcollege 8 (7 juni 2007) Bas Luttik s.p.luttik@tue.nl http://www.win.tue.nl/~luttik HG 7.14 tel.: 040 247 5152 Hoorcollege 8 (7 juni 2007) Functionele talen Idee: een programma definieert reeks (wiskundige) functies. Programma

Nadere informatie

Getal en Ruimte wi 1 havo/vwo deel 1 hoofdstuk 4 Didactische analyse door Lennaert van den Brink (1310429)

Getal en Ruimte wi 1 havo/vwo deel 1 hoofdstuk 4 Didactische analyse door Lennaert van den Brink (1310429) Getal en Ruimte wi 1 havo/vwo deel 1 hoofdstuk 4 Didactische analyse door Lennaert van den Brink (1310429) - een lijst met operationele en concrete doelen van de lessenserie, indien mogelijk gerelateerd

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

Verzamelingen, Lijsten, Functioneel Programmeren Verzamelingen, Lijsten, Functioneel Programmeren Jan van Eijck jve@cwi.nl Lezing 4e Gymnasium, 19 november 2015 Samenvatting In deze lezing gaan we in op de overeenkomsten en verschillen tussen verzamelingen

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

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

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59. Datastructuren 2015 Programmeeropdracht 3: Expressies Deadline. Dinsdag 8 december 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek van Drozdek. U wordt gevraagd expressies

Nadere informatie

2. Syntaxis en semantiek

2. Syntaxis en semantiek 2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus

Nadere informatie

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12 Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal

Nadere informatie

Hoofdstuk 9. Vectorruimten. 9.1 Scalairen

Hoofdstuk 9. Vectorruimten. 9.1 Scalairen Hoofdstuk 9 Vectorruimten 9.1 Scalairen In de lineaire algebra tot nu toe, hebben we steeds met reële getallen als coëfficienten gewerkt. Niets houdt ons tegen om ook matrices, lineaire vergelijkingen

Nadere informatie

III.2 De ordening op R en ongelijkheden

III.2 De ordening op R en ongelijkheden III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.

Nadere informatie

De partitieformule van Euler

De partitieformule van Euler De partitieformule van Euler Een kennismaking met zuivere wiskunde J.H. Aalberts-Bakker 29 augustus 2008 Doctoraalscriptie wiskunde, variant Communicatie en Educatie Afstudeerdocent: Dr. H. Finkelnberg

Nadere informatie

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr. Universiteit Gent Academiejaar 2001 2002 Discrete Wiskunde 1ste kandidatuur Informatica Collegenota s Prof. Dr. Frank De Clerck Herhalingsoefeningen 1. Bepaal het quotiënt en de rest van de deling van

Nadere informatie

2. Syntaxis en semantiek

2. Syntaxis en semantiek 2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus

Nadere informatie

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010 RuG-Informatica-cursus Discrete Structuren, versie 2009/2010 Handout 5A Jan Terlouw maandag 8 maart 2010 1 Algemeen over DS in deze week Nadere belichting van stof van week 4 (mede i.v.m. toets). Bij het

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

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

Nadere informatie

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

Combinatoriek groep 2

Combinatoriek groep 2 Combinatoriek groep 2 Recursie Trainingsdag 3, 2 april 2009 Homogene lineaire recurrente betrekkingen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een

Nadere informatie

Verzamelingen, Lijsten, Functioneel Programmeren

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

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

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/887/25833 holds various files of this Leiden University dissertation Author: Palenstijn, Willem Jan Title: Radicals in Arithmetic Issue Date: 204-05-22 Samenvatting

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven Mededelingen TI1300: Redeneren en Logica College 4: Waarheidstafels, Redeneringen, Syntaxis van PROP Tomas Klos Algoritmiek Groep Voor de Fibonacci getallen geldt f 0 = f 1 = 1 (niet 0) Practicum 1 Practicum

Nadere informatie

Opgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.

Opgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep. Opgaven Analyse van Algoritmen 10 mei 019, Datastructuren, 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

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Enkele valkuilen om te vermijden

Enkele valkuilen om te vermijden Enkele valkuilen om te vermijden Dit document is bedoeld om per onderwerp enkele nuttige strategieën voor opgaven te geven. Ook wordt er op een aantal veelgemaakte fouten gewezen. Het is géén volledige

Nadere informatie

Verzamelingen. Hoofdstuk 5

Verzamelingen. Hoofdstuk 5 Hoofdstuk 5 Verzamelingen In de meest uiteenlopende omstandigheden kan het handig zijn om een stel objecten, elementen, of wat dan ook, samen een naam te geven. Het resultaat noemen we dan een verzameling.

Nadere informatie

Samenvatting hst. 3 sec. 1-3

Samenvatting hst. 3 sec. 1-3 Samenvatting hst. 3 sec. 1-3 infixr 4 (< >) :: Parser a b! Parser a b! Parser a b (p < > q) xs = p xs ++ q xs infixl 6 () :: Parser a (b!c)! Parser a b! Parser a c (p q) xs = [(f b,zs) (f,ys)"p

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

Wiskunde voor relativiteitstheorie

Wiskunde voor relativiteitstheorie Wiskunde voor relativiteitstheorie HOVO Utrecht Les 3: Integraalrekening en lineaire vormen Dr. Harm van der Lek vdlek@vdlek.nl Natuurkunde hobbyist Programma 3.1.1 Goniometrie Matrixen Integraal rekening

Nadere informatie

Analyse rekenalgebraïsche. vaardigheden in de onderbouw van het havo/vwo. ReAL Leerlijnen van rekenen naar algebra

Analyse rekenalgebraïsche. vaardigheden in de onderbouw van het havo/vwo. ReAL Leerlijnen van rekenen naar algebra Analyse rekenalgebraïsche vaardigheden in de onderbouw van het havo/vwo. ReAL Leerlijnen van rekenen naar algebra SLO nationaal expertisecentrum voor leerplanontwikkeling Wiskunde in de onderbouw van het

Nadere informatie

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking 10 december 2013, 09:30 12:30 Dit tentamen bevat 5 opgaven; zie ook de ommezijde. Alle opgaven tellen even zwaar (10 punten); je cijfer is

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

Supplement Verzamelingenleer. A.J.M. van Engelen en K. P. Hart

Supplement Verzamelingenleer. A.J.M. van Engelen en K. P. Hart Supplement Verzamelingenleer A.J.M. van Engelen en K. P. Hart 1 Hoofdstuk 1 Het Keuzeaxioma Het fundament van de hedendaagse verzamelingenleer werd in de vorige eeuw gelegd door Georg Cantor. Cantor gebruikte

Nadere informatie

Tentamen Lineaire Algebra 1 (Wiskundigen)

Tentamen Lineaire Algebra 1 (Wiskundigen) Tentamen Lineaire Algebra Wiskundigen Donderdag, 23 januari 24,.-3. Geen rekenmachines. Motiveer elk antwoord.. Voor alle reële getallen a definiëren we de matrix C a als a C a = a 2. a Verder definiëren

Nadere informatie

Getaltheorie I. c = c 1 = 1 c (1)

Getaltheorie I. c = c 1 = 1 c (1) Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk

Nadere informatie

Haskell: programmeren in een luie, puur functionele taal

Haskell: programmeren in een luie, puur functionele taal Haskell: programmeren in een luie, puur functionele taal Jan van Eijck jve@cwi.nl 5 Talen Symposium, 12 juli 2010 Samenvatting In deze mini-cursus laten we zien hoe je met eindige en oneindige lijsten

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

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen Worteltrekken modulo een priemgetal: van klok tot cutting edge Roland van der Veen Modulorekenen Twee getallen a en b zijn gelijk modulo p als ze een veelvoud van p verschillen. Notatie: a = b mod p Bijvoorbeeld:

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D2. Datum: dinsdag 29 april 28. Tijd: 14: 17:. Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je naam en studentnummer

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

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

Numerieke benadering van vierkantwortels

Numerieke benadering van vierkantwortels HP Prime Grafische Rekenmachine Numerieke benadering van vierkantwortels Doel: De waarde van een vierkantswortel met een recursieve rij benaderen, het schrijven van een klein programma. Sleutelwoorden:

Nadere informatie

Min maal min is plus

Min maal min is plus Min maal min is plus Als ik een verontruste wiskundeleraar moet geloven, is de rekenregel voor het product van twee negatieve getallen nog steeds een probleem. Hessel Pot schreef me: waarom willen we dat

Nadere informatie

Schoolagenda 5e jaar, 8 wekelijkse lestijden

Schoolagenda 5e jaar, 8 wekelijkse lestijden Leerkracht: Koen De Naeghel Schooljaar: 2012-2013 Klas: 5aLWi8, 5aWWi8 Aantal taken: 19 Aantal repetities: 14 Schoolagenda 5e jaar, 8 wekelijkse lestijden Taken Eerste trimester: 11 taken indienen op taak

Nadere informatie

Dossier 1 SYMBOLENTAAL

Dossier 1 SYMBOLENTAAL Dossier 1 SYMBOLENTAAL basis voor wiskundige communicatie Dr. Luc Gheysens Wiskundigen hebben een eigen symbolentaal waarmee ze onderling communiceren, redeneringen en bewijzen neerschrijven, mathematische

Nadere informatie

Combinatoriek groep 1 & 2: Recursie

Combinatoriek groep 1 & 2: Recursie Combinatoriek groep 1 & : Recursie Trainingsweek juni 008 Inleiding Bij een recursieve definitie van een rij wordt elke volgende term berekend uit de vorige. Een voorbeeld van zo n recursieve definitie

Nadere informatie

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008 Katholieke Universiteit Leuven September 008 Algebraïsch rekenen (versie 7 juni 008) Inleiding In deze module worden een aantal basisrekentechnieken herhaald. De nadruk ligt vooral op het symbolisch rekenen.

Nadere informatie

Studiehandleiding Basiswiskunde cursus

Studiehandleiding Basiswiskunde cursus Studiehandleiding Basiswiskunde cursus 2008 2009 Materiaal Bij dit college heb je nodig: Het boek Basisboek wiskunde van Jan van de Craats en Rob Bosch Isbn: 90 430 1156 8 De syllabus Aanvulling basiscursus

Nadere informatie

Introductie tot de cursus

Introductie tot de cursus Inhoud introductietalen en ontleders Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en

Nadere informatie

VERZAMELINGEN EN AFBEELDINGEN

VERZAMELINGEN EN AFBEELDINGEN I VERZAMELINGEN EN AFBEELDINGEN Het begrip verzameling kennen we uit het dagelijks leven: een bibliotheek bevat een verzameling van boeken, een museum een verzameling van kunstvoorwerpen. We kennen verzamelingen

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

Schooljaar: Leerkracht: M. Smet Leervak: Wiskunde Leerplan: D/2002/0279/048

Schooljaar: Leerkracht: M. Smet Leervak: Wiskunde Leerplan: D/2002/0279/048 Blz: 1/5 04 09 09 1.1 STELLING VAN PYTHAGORAS ouwregel tot Pythagoras: formulering. 07 09 09 11 09 09 14 09 09 18 09 09 21 09 09 22 09 09 25 09 09 29 09 09 01 10 09 02 10 09 06 10 09 08 10 09 09 10 09

Nadere informatie

Logic for Computer Science

Logic for Computer Science Logic for Computer Science 06 Normaalvormen en semantische tableaux Wouter Swierstra University of Utrecht 1 Vorige keer Oneindige verzamelingen 2 Vandaag Wanneer zijn twee formules hetzelfde? Zijn er

Nadere informatie

Datastructuren Programmeeropdracht 2: Expressies. 1 Expressies. Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59.

Datastructuren Programmeeropdracht 2: Expressies. 1 Expressies. Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59. Datastructuren 2016 Programmeeropdracht 2: Expressies Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek

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

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma HOOFDSTUK 2 Gröbnerbases 1. Vragen We hebben gezien dat de studie van stelsels polynoomvergelijkingen in meerdere variabelen op natuurlijke manier leidt

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D. Datum: Donderdag 8 juli 4. Tijd: 14. 17. uur. Plaats: MA 1.44/1.46 Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je

Nadere informatie

Inhoud college 4 Basiswiskunde. 2.6 Hogere afgeleiden 2.8 Middelwaardestelling 2.9 Impliciet differentiëren 4.9 Linearisatie

Inhoud college 4 Basiswiskunde. 2.6 Hogere afgeleiden 2.8 Middelwaardestelling 2.9 Impliciet differentiëren 4.9 Linearisatie Inhoud college 4 Basiswiskunde 2.6 Hogere afgeleiden 2.8 Middelwaardestelling 2.9 Impliciet differentiëren 4.9 Linearisatie 2 Basiswiskunde_College_4.nb 2.6 Hogere afgeleiden De afgeleide f beschrijft

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

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

6 Complexe getallen. 6.1 Definitie WIS6 1

6 Complexe getallen. 6.1 Definitie WIS6 1 WIS6 1 6 Complexe getallen 6.1 Definitie Rekenen met paren De vergelijking x 2 + 1 = 0 heeft geen oplossing in de verzameling R der reële getallen (vierkantsvergelijking met negatieve discriminant). We

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

2. Een eerste kennismaking met Maxima

2. Een eerste kennismaking met Maxima . Een eerste kennismaking met Maxima Als u nog niet eerder kennis heeft gemaakt met CAS (Computer Algebra System) software, dan lijkt Maxima misschien erg gecompliceerd en moeilijk, zelfs voor het oplossen

Nadere informatie