HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs

Maat: px
Weergave met pagina beginnen:

Download "HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs"

Transcriptie

1 HOOFDSTUK 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 doen, net als een algoritme of een PSD. Interessant artikel in Computerworld: 25 Fatale programmeerfouten. Bij het uitleggen van een programma of algoritme wordt vaak pseudocode gebruikt. Pseudocode is geen code van een echte programmeertaal, maar is alleen maar bedoeld om dingen eenvoudiger uit te leggen. In dit hoofdstuk gebruiken we ook pseudocode. Vaak wordt bij pseudocode := gebruikt om aan te geven dat een variabele een waarde krijgt. 3.2 If Then Else Bij imperatief programmeren omschrijf je in een code stapsgewijs wat een programma moet doen, net als een algoritme en PSD. Wanneer een PSD selecties (keuzes) bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. Denk nog maar even terug aan dit schema: Als je imperatief gaat programmeren, krijg je veel met zulke keuzes of voorwaardes te maken. Hiertoe zijn er de if then -statements en de else -statements. : toegangsprijs We kijken weer even naar het voorbeeld dat de procedure beschrijft voor het bepalen van de toegangsprijs voor een pretpark. ALS leeftijd < 12 DAN toegang := 5 euro ANDERS ALS leeftijd >= 60 DAN toegang := 5 euro ANDERS toegang := 10 euro EINDE-ALS EINDE-ALS 221

2 De code wordt sequentieel van boven naar beneden afgewerkt. Je ziet dat er allerlei keuzes gemaakt moeten worden. Uiteindelijk is het resultaat dat mensen jonger dan 12 en ouder dan, of net zo oud als 60, voor de toegang 5 euro betalen; de overige leeftijden betalen 10 euro. Niet elke If heeft een Else, maar wel elke Else een If Het if-statement is niet onlosmakelijk verbonden aan het else-statement; het is niet noodzakelijk dat elk if-statement ook een else-statement heeft. Aan de andere kant hoort elk else-statement wel bij een if-statement. Merk op dat alle operaties binnen een statement iets naar rechts zijn geplaatst. Dit principe noemen we inspringen. In de meeste programmeertalen zal het programma ook werken als je dit niet doet, maar het is belangrijk om het wel te doen, omdat de code er overzichtelijker van wordt. 3.4 Booleaanse expressies In de eerder gegeven voorbeelden heb je (misschien onbewust) al kennis gemaakt met Booleaanse expressies. De naam Booleaans komt van de wiskundige en filosoof George Boole, die het redeneren in waarden als true en false heeft geïntroduceerd in de 19e eeuw. Een Booleaanse expressie is een expressie die de waarden true of false aan kan nemen. De voorwaarde van een if-statement is een Booleaanse expressie. Als die de waarde true heeft, wordt de direct onderliggende code uitgevoerd en niet de code onder het elsestatement, als dit aanwezig is. Als de Booleaanse expressie de waarde false heeft, is het andersom. 3.3 Lus Oneindige lus Wanneer een programma een iteratie (herhaling) bevat, zeggen we ook wel dat er sprake is van een lus (of 'loop' in het Engels). De operaties die in een lus zitten worden namelijk uitgevoerd zolang aan een bepaalde voorwaarde voldaan wordt. De meest bekende is de while-lus, hieronder aangegeven als 'ZOLANG'. Hier zie je een voorbeeld van een lus: getal := 0 ZOLANG getal < 3 getal := getal + 1 EINDE-ZOLANG In dit voorbeeld wordt een getal net zolang verhoogd totdat het niet meer kleiner is dan 3. Met andere woorden: de lus stopt zodra het getal 3 is geworden. Symbolen Booleaanse logica De symbolen in onderstaande tabel worden vaak gebruikt in de Booleaanse expressies van programmeertalen. Symbool Naam Gebruik > groter-dan x > y is true als x groter is dan y >= groter-dan-ofgelijk-aan x >= y is true als x groter is dan y of net zo groot < kleiner-dan x < y is true als x kleiner is dan y <= kleiner-dan-ofgelijk-aan x <= y is true als x kleiner is dan y of net zo groot not not not x is true als x false is en andersom; de Booleaanse waarde van x wordt geïnverteerd and and x and y is true als x en y beide true zijn or or x or y is true als x of y true is (of als ze allebei true zijn) xor exclusive or x xor y is true als x of y true is (en niet als ze allebei true zijn) Wanneer de voorwaarde van een while-lus altijd waar blijft, zal de lus niet vanzelf stoppen (het programma 'blijft hangen'). Dit noem je een 'oneindige lus'. Meestal is dit niet de bedoeling en heeft de programmeur een fout in de voorwaarde gemaakt, of ergens anders, of allebei. Misschien had je het al opgemerkt: de code van de toegangsprijs van het pretpark kunnen we met deze logica korter omschrijven: ALS leeftijd < 12 OF leeftijd >= 60 DAN toegang := 5 euro ANDERS toegang := 10 euro EINDE-ALS

3 Wijze van weergeven Bij het opstellen van een Booleaanse expressie moet je zorgvuldig te werk gaan. Een verschil in de volgorde van de expressie kan bijvoorbeeld hele andere resultaten opleveren. Het is daarom veilig om delen van je expressie te voorzien van haakjes: '(' en ')'. Door delen tussen haakjes te zetten, geef je aan dat deze als geheel geïnterpreteerd moeten worden. van een functie die zou werken in C, C++, Java en C#: int som(int getal1, int getal2) { return getal1 + getal2; } Waarheidstabel De volgende expressie: (x EN y) OF z is niet hetzelfde als: Als je niet de juiste grammaticaregels van de programmeertaal gebruikt in je code, dan maak je een syntactische fout (Engels: 'syntax error'). Zou je bijvoorbeeld de haakjes vergeten in de code hierboven, dan krijg je hier een foutmelding bij. x EN (y OF z) Je kunt dit gemakkelijk zien door voor deze expressies een waarheidstabel te maken. Dit is een tabel waarin je aangeeft wanneer de expressie true of false is bij welke waarden. Hieronder zijn van beide expressies de verschillende waarheidstabellen weergegeven. 3.6 Variabelen (x EN y) OF z x EN (y OF z) Een variabele is een element dat een bepaalde waarde aan kan nemen. x y z Waarde van expressie x y z Waarde van expressie true true true true true true true true true true false true true true false true true false true true true false true true true false false false true false false false false true true true false true true false false true false false false true false false false false true true false false true false false false false false false false false false Een voorbeeld van een variabele is de toegangsprijs van een pretpark. De waarde die een variabele kan hebben, is afhankelijk van het type van de variabele. Er zijn verschillende typen die voorkomen in verschillende programmeertalen, maar doorgaans zijn de volgende typen aanwezig: ffgeheel getal Dit wordt een integer genoemd, vaak afgekort tot int. '42' is bijvoorbeeld een heel getal. ffkommagetal Dit wordt vaak een double of float genoemd. Bijvoorbeeld: '109.75'. In veel programmeertalen moet je deze getallen op z'n Engels noteren, met een decimale punt. Meestal worden in waarheidstabellen de termen true en false vervangen door respectievelijk 1 en 0. Dit kan zo'n tabel een stuk beknopter maken. ffkarakter Dit noemt men een character of kortweg char (spreek uit: kar). Een karakter kan elk ANSI-, EBCDIC- of Unicode-teken zijn, bijvoorbeeld '$'. 3.5 Syntax ffboolean Dit wordt ook wel bool genoemd. Een boolean kan alleen maar true of false zijn. Sommige programmeertalen (waaronder C en C++) laten hier ook gehele getallen in toe, waarbij 0 staat voor false en alle andere getallen voor true. 224 De syntaxis (Engels: syntax) is de grammatica van een programmeertaal en beschrijft hoe de code er in een bepaalde programmeertaal uit moet komen te zien, wat de grammaticaregels zijn. Elke programmeertaal heeft een eigen syntax, maar sommige programmeertalen hebben onderling veel syntactische overeenkomsten, zoals C, C++, Java en C#. De reden dat veel programmeertalen een overeenkomstige syntax hebben, is dat men het de programmeurs makkelijker wil maken een andere taal te leren. ffstring Een apart soort variabele is de string. Dit is een reeks karakters, bijvoorbeeld 'tijger' of fietswiel

4 3.7 Arrays De meeste programmeertalen bieden de mogelijkheid om arrays (Nederlands: lijst) te maken. Een array is een geordende rij van waardes van hetzelfde type. Zo kun je bijvoorbeeld een array van gehele getallen maken. De waardes van een array zijn genummerd; het volgnummer noemen we de index. In veel programmeertalen begint de indexering van een array met 0 (en niet met 1). De code: rij_van_getallen := [32, 59, 825, 9042] De indexering: rij_van_getallen 3.8 Functies index: waarde: Functies zijn eerder in dit hoofdstuk al eens genoemd. Je kunt deze gebruiken als je een bepaald stukje code vaker wilt gebruiken zonder dat je de code opnieuw hoeft te schrijven. Het maakt je programma een stuk overzichtelijker. Met een functie maak je een soort 'subprogrammaatje'. Als in het programma de naam van een functie staat, wordt daar het subprogrammaatje dat erbij hoort, uitgevoerd. We noemen dat het aanroepen van de functie. Van een functie moeten de volgende zaken worden gedefinieerd: ffde naam Elke functie moet een unieke naam hebben. Sommige programmeertalen laten toe dat namen van functies vaker voorkomen, zolang de parameters verschillen. Dit principe noem je overloading. ffde parameters Dit zijn speciale variabelen die een waarde krijgen bij het aanroepen van de functie. Zo kan de functie werken met de meegegeven waarden. Een functie kan nul of meer parameters hebben. ffhet returntype Dit is het waarde-type dat de functie na uitvoeren oplevert. Een functie kan maar één returntype hebben. Deze waarde wordt op de plek van de aanroep verder gebruikt. ffde body Dit is de code die uitgevoerd wordt als de functie aangeroepen wordt. In dit voorbeeld wordt voor elke variabele, het type van de variabele gespecificeerd (net als bij de meeste programmeertalen). som(int getal1, int getal2) : int int optelling := getal1 + getal2 return optelling De functie 'som' telt twee getallen van het type 'int' bij elkaar op en geeft het resultaat (wat hier de naam 'optelling' heeft gekregen) als int terug. De termen 'getal1' en 'getal2' zijn de parameters en worden gescheiden door een komma. We kunnen nu naar deze functie refereren, of anders gezegd: we kunnen deze functie aanroepen en het resultaat in een andere variabele stoppen. Bijvoorbeeld: int getala := som(10, 20) int getalb := som(getala, 70) int getalc := som(som(50, 50), getalb) Als bovenstaande code uitgevoerd zou worden zou na afloop getala de waarde 30 hebben, getalb 100 en getalc 200. Je ziet: na een aanroep van een functie kan het resultaat precies zo worden behandeld als het returntype van de functie. In dit geval is het returntype van de functie een integer en kun je dus dit resultaat direct weer gebruiken, zoals op de derde regel hier ook gebeurt. 3.9 Parameters en argumenten We hebben eerder aangegeven dat getal1 en getal2 de parameters zijn van de functie 'som'. Bij het aanroepen worden deze parameters ingevuld door, wat we noemen, de argumenten. Een argument is een waarde die meegegeven wordt bij een functieaanroep. We herhalen het voorbeeld uit de vorige paragraaf:

5 int getala := som(10, 20) int getalb := som(getala, 70) int getalc := som(som(50, 50), getalb) Als bij het aanroepen van een functie een variabele meegegeven wordt - zoals in ons voorbeeld op de tweede regel het geval is - dan wordt niet de variabele zelf meegestuurd, maar de waarde van de variabele. Omdat de waarde wordt meegegeven, verandert de variabele zelf dus niet na het aanroepen van een methode, ongeacht wat de methode met de parameters doet. We proberen dit in het volgende voorbeeld te verduidelijken. We definiëren eerst een functie (die eigenlijk niets zinnigs doet): Deze functie heeft geen parameters en geen returnwaarde. Bovendien wordt er een andere functie aangeroepen met de naam 'print', waarbij een string als argument wordt meegegeven Recursie Wanneer een patroon zich binnen zichzelf herhaalt is er sprake van recursie. De figuur hieronder is bijvoorbeeld een recursief figuur, omdat het patroon - een twee keer zo klein vierkantje in de hoek linksboven - zich herhaalt. Denk ook maar aan het resultaat dat je ziet als je een spiegel tegenover een andere spiegel houdt. Ook binnen de wereld van het programmeren is recursie een bekend en belangrijk fenomeen. Sommige programmeerproblemen zijn namelijk beter of uitsluitend met recursie op te lossen. Binnen het programmeervak spreekt men van recursie als de body van een functie een aanroep van deze zelfde functie bevat, met andere woorden: als een functie zichzelf aanroept Void zomaareenfunctie(int eengetal) : int eengetal := 999 return 0 Vervolgens roepen we deze aan: mijneerstegetal := 5 mijntweedegetal := zomaareenfunctie(mijneerstegetal) Na het zogenaamd uitvoeren van deze code zal mijneerstegetal nog altijd de waarde 5 hebben en mijntweedegetal de waarde 0. Alle voorbeeldfuncties tot nu toe hadden een returnwaarde, namelijk een int. Maar een functie hoeft niet per se een returnwaarde te hebben. Dat geef je aan met het returntype void. Void is eigenlijk geen variabele-type, maar is eerder de afwezigheid van een waarde. Letterlijk vanuit het Engels vertaald betekent void dan ook 'leegte'. Hieronder is een voorbeeldfunctie zonder returnwaarde gedefinieerd: zeghallo() : void print( hallo ) Een recursief figuur. Hieronder zie je een voorbeeld van een recursieve functie: mijnfunctie() : void mijnfunctie() Recursieve functies moeten met zorg geschreven worden. Als de programmeur niet goed oplet bij het schrijven van een recursieve functie, blijft de functie zichzelf oneindig aanroepen en loopt het programma vast of crasht het doordat het geheugen van de computer volgelopen is. We noemen dit een overflow. De oplettende lezer had misschien al door dat de code hierboven een voorbeeld is van oneindige recursie. Om te voorkomen dat recursie eindeloos (tot aan een crash) door blijft gaan, moet de programmeur de functie voorzien van een stopconditie. Dit is een punt waarmee het recursieve proces tot stoppen gebracht wordt. Bekijk nu de volgende code: faculteit(int getal) : int if(getal = 1) return 1 return getal * faculteit(getal * 1) De functie in de code hierboven berekent de faculteit van een getal op een recursieve manier. De stopconditie is in dit geval de booleaanse expressie op de eerste regel van de functie. Onderaan staat de recursieve aanroep waarbij het huidige getal met 1 verminderd als argument meegegeven wordt. De eerste keer dat deze functie

6 wordt aangeroepen wordt dus niet direct een resultaat teruggegeven, maar duikt het programma als het ware eerst opnieuw in deze zelfde functie tot aan de stopconditie, waarna alles teruggegeven wordt. Je kunt dit vergelijken met een speelgoedautootje dat je terugdraait tot hij niet meer verder kan, waarna je hem loslaat en hij vervolgens vooruit schiet (en de voorheen afgelegde afstand opnieuw aflegt in de omgekeerde volgorde) Functioneel programmeren In de wiskunde is de faculteit van een getal (genoteerd als een getal gevolgd door een uitroepteken) een reeks aan vermenigvuldigingen waarbij telkens het getal wordt verminderd met 1 totdat het getal zelf 1 is, bijvoorbeeld: 5! = 5 * 4 * 3 * 2 * 1 De techniek van recursie is zo universeel en krachtig dat er een hele familie van programmeertalen rond dit concept bestaat. Dit zijn de zogenaamde functionele programmeertalen. In een functionele programmeertaal heeft een variabele, net als in de wiskunde, altijd dezelfde waarde. Je hebt dus geen assignments (toekenningen) zoals x := x + 1. Variabelen, veelal parameters, krijgen een waarde bij aanroep van de functie waar ze in voor komen. Daarom bestaan deze programma's uit veel aanroepen, vaak recursief, van relatief kleine functies. Deze functies lijken erg op wiskundige functies en zijn daardoor ook goed wiskundig te beschrijven en te analyseren. Programmeren in een functionele programmeertaal is niet zo makkelijk te leren. Abstractievermogen en een wiskundige attitude komen goed van pas. Maar een ervaren programmeur kan er snel en effectief mee programmeren. en van functionele programmeertalen zijn Lisp, Haskell en Clojure. Veel nietfunctionele talen bevatten wel functionele concepten, zoals functies die als parameter kunnen optreden in PHP en C++ en lambda-expressies in Java. van een stukje Haskell: som :: [integer] -> Integer -- som is een functie van een lijst integers naar -- een integer som [] = 0 -- de som van de lege lijst is 0 som {x:xs} = x + som xs Deze functie telt de elementen van een lijst op. -- de som van een niet-lege lijst is het eerste -- element plus de som van de rest 3.13 Vragen en opdrachten Open vragen 1. Wanneer zal van een else-statement de inhoud worden uitgevoerd? 2. Geef de waarheidstabel van de volgende expressie: x OR (NOT y). 3. a. Noem de Engelse namen van de verschillende typen variabelen die je kent. b. Wat valt je op als je de string met de lijst vergelijkt? 4. a. Welke eigenschappen moet je van een functie definiëren? b. Wat is het verschil tussen een parameter en een argument? 5. Leg in je eigen woorden uit wat syntax betekent Meerkeuzevragen 1. Welke van onderstaande beweringen over lijsten is niet waar? a. De eerste waarde van een lijst staat op index 0. b. Een lijst heeft een volgorde waarin de waardes gerangschikt zijn. c. In één lijst kunnen verschillende waardes worden opgeslagen van verschillende typen. d. Een lijst wordt ook wel array genoemd. 2. Bekijk onderstaande voorbeeld: int a = 2 int b = 4 int c = 6 vermenigvuldig(int x, int y) : int return x * y c := vermenigvuldig(a, b) Stel dat deze code uitgevoerd zou worden, welke waardes zouden dan correct zijn ná het uitvoeren: a. x is 2, y is 4 en c is 6. b. a is 2, b is 4 en c is 8. c. b is 4, y is 4 en c is 4. d. a is 2, b is 4 en c is Welke van onderstaande beweringen over lussen is niet waar? a. Van een lus wordt de booleaanse expressie herhaaldelijk gecontroleerd. b. Een lus is vergelijkbaar met de iteratie van een PSD. c. Een ander woord voor lus is loop. d. Bij een oneindige lus wordt niet aan de booleaanse expressie voldaan

7 4. Van de volgende booleaanse expressie zijn de operatoren vervangen door cijfers. De waarden voor x en y zijn: x = true, y = false. Welke operatoren kunnen hier staan om de expressie de waarde true te laten zijn? 1 y 2 3 (x 4 y) a. 1 = XOR, 2 = AND, 3 = OR, 4 = XOR b. 1 = OR, 2 = AND, 3 = NOT 4 = AND c. 1 = AND, 2 = AND, 3 = NOT, 4 = AND d. 1 = OR, 2 = XOR, 3 = NOT, 4 = AND 5. Bekijk onderstaande code aandachtig en maak de bewering af zodat deze klopt. if(getal == 1) return 1 return getal * mijnfunctie(getal + 1) Het aanroepen van de functie met mijnfunctie(5) resulteert uiteindelijk in... a....het crashen van het programma b....een eindeloze herhaling van de functie c....het verschijnen van een syntax error d....een getal Korte opdrachten 1. Zoek ten minste vijf syntactische regels voor de programmeertaal Java en beschrijf deze kort in je eigen woorden. 2. a. Schrijf zelf code voor het zetten van koffie. Maak hierbij gebruik van variabelen, ten minste één lus en ten minste één functie. b. Beschrijf vervolgens stapsgewijs de werking van jouw code. Geef hierbij onder andere aan welke variabelen op welk moment welke waarde hebben Samenvatting ff is het stapsgewijs schrijven van instructies die van boven naar beneden uitgevoerd worden. Kenmerken hierbij zijn: yif-, then-, else-statemens: gebruikt om voorwaarden aan variabelen te stellen ylussen: herhalingen, denk hierbij aan de while-lus yfuncties: kleine deelprogramma's om het programma overzichtelijker te maken en herhalende code slechts één keer te hoeven schrijven. ffeen parameter is een variabele die gedefiniëerd is bij een functie. Een argument is de waarde die je meegeeft bij het aanroepen van een functie. ffer zijn verschillende typen variabelen: yint: heel getal ydouble of float: kommagetal ychar: een karakterteken ybool of boolean: heeft de waarde true of false ystring: een reeks van karakters. ffeen lijst (of array) is een reeks van waardes van één type variabele. ffrecursie is een zich binnen zichzelf herhalend patroon. ffeen functie is recursief als deze zichzelf aanroept. Wanneer een functie door het ontbreken van een stopconditie zichzelf eindeloos aanroept, crasht het programma door een overflow. f f De syntax van een programmeertaal beschrijft de grammaticaregels waaraan een programmeur zich voor die taal moet houden

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

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

HOOFDSTUK Stapsgewijs programmeren. I m peratief programme re n. 3.2 If Then Else. Joorbee1d: toegangsprijs

HOOFDSTUK Stapsgewijs programmeren. I m peratief programme re n. 3.2 If Then Else. Joorbee1d: toegangsprijs HOOFDSTUK 3 m peratief programme re n 3.1 Stapsgewijs programmeren ModuLe 4 Programmeren De programmeerta[en die tot nu toe genoemd zijn, zin imperatieve of proceduree programmeertalen. mperatief programmeren

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

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

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

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

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

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

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

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

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

Nadere informatie

Variabelen en statements in ActionScript

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

Nadere informatie

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

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

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

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

Nadere informatie

Informatica: C# WPO 11

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

Nadere informatie

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

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14 Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

[8] De ene 1 is de andere niet

[8] De ene 1 is de andere niet [8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.

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

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

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

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

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

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

Nadere informatie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

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

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

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

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

VAN HET PROGRAMMEREN. Inleiding

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

Nadere informatie

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

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

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld

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

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder

Nadere informatie

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2011-2012 Zaterdag 5 november 2011, 9u30 NAAM :... VRAAG 1: EVEN VEEL [5 PUNTEN] Schrijf een methode evenveel(), met twee argumenten,

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Lab Webdesign: Javascript 25 februari 2008

Lab Webdesign: Javascript 25 februari 2008 H4: FUNCTIES We zullen in dit hoofdstuk zien hoe we functies moeten maken, aanroepen, argumenten doorgeven en waarden retourneren. Ook zullen we het hebben over het begrip "recursie", en laten zien hoe

Nadere informatie

REEKS I. Zaterdag 6 november 2010, 9u

REEKS I. Zaterdag 6 november 2010, 9u TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS I Zaterdag 6 november 2010, 9u NAAM :... VRAAG 1: MINSTENS [5 PUNTEN] Schrijf een methode minstens(), met twee

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,

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

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

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

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

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

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje: [14] Functies Een goede programmeur doet altijd zijn best om zoveel mogelijk aan hergebruik van code te doen. Je probeert in je programma code te gebruiken die iemand anders heeft gemaakt, of code die

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW: OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen. Inleiding Computers en andere digitale apparatuur is tegenwoordig niet meer weg te denken in de huidige samenleving. Zonder programma s zijn deze apparaten echter niets waard. Het zijn de programma s die

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

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica Samenvatting door een scholier 1809 woorden 28 oktober 2005 6,1 16 keer beoordeeld Vak Methode Informatica Turing informatica samenvatting. hst3: algoritme:een beschrijving van stappen die gedaan moeten

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

10. Controleopdrachten

10. Controleopdrachten Computeralgebra met Maxima 10. Controleopdrachten 10.1. Functies en operatoren voor lijsten/vectoren/arrays Een van de eenvoudigste maar belangrijkste lusachtige functies is de makelist opdracht. Voor

Nadere informatie

Programmeermethoden NA. Week 3: Controlestructuren

Programmeermethoden NA. Week 3: Controlestructuren Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

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

DE INTERACTIEVE SHELL

DE INTERACTIEVE SHELL Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren

Nadere informatie

Een spoedcursus python

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

Nadere informatie

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie

Nadere informatie

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

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting? Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.

Nadere informatie

Afhankelijk van wanneer je het programma uitvoert, zie je een van de volgende resultaten:

Afhankelijk van wanneer je het programma uitvoert, zie je een van de volgende resultaten: Hoofdstuk 4 Voorwaarden en vertakkingen Laten we eens teruggaan naar ons eerste programma. Zou het niet leuk zijn als we in plaats van het algemene Hallo wereld, afhankelijk van de tijd van de dag, Goedemorgen

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)

Nadere informatie

Stroomschema s maken op papier

Stroomschema s maken op papier 1 Stroomschema s maken op papier Een programma direct maken in Python, gaat vaak wel goed als het een klein programma is. Als het programma groter en moeilijker is, is het lastig om goed te zien welk commando

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA. Week 6: Lijsten Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal

Nadere informatie

Opdracht 3: Betere oplossingen

Opdracht 3: Betere oplossingen Opdracht 3: Betere oplossingen Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println(Hallo! Voorbeeld Java-programma import java.io.*; één klasse...met één functie...met één opdracht public class Hallo { public static void main (String[] a) { System.out.println("Hallo!"); accolades begrenzen

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

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

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

Nadere informatie

Javascript oefenblad 1

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

Nadere informatie

[13] Rondjes draaien (loops)

[13] Rondjes draaien (loops) [13] Rondjes draaien (loops) Met de if else uit de leerfiche [11] hebben we leren werken met één van de belangrijkste programmeerstructuren in Python. Bijna even belangrijk zijn de verschillende mogelijkheden

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

Deeltentamen Grammatica s en ontleden 22 december 2005 Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,

Nadere informatie

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur) Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey

Nadere informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

Nadere informatie

Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Herkansingstentamen Algoritmiek voor Biologen

Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Herkansingstentamen Algoritmiek voor Biologen Opgave 1. (4 punten) Elk jaar verliest een boom al z'n bladeren. Een boom begint op dag D met B bladeren. Op de eerste dag is voor elk blad dat aan de boom zit de kans op afvallen 0.03. Voor elke volgende

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

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 13 Programma verificatie Wouter Swierstra University of Utrecht 1 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment

Nadere informatie

Opdracht 3: Betere oplossingen

Opdracht 3: Betere oplossingen Opdracht 3: Betere oplossingen Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

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

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

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

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

OEFENINGEN PYTHON REEKS 6

OEFENINGEN PYTHON REEKS 6 OEFENINGEN PYTHON REEKS 6 1. A) Schrijf een functie die een getal x en een getal y meekrijgt. De functie geeft de uitkomst van volgende bewerking als returnwaarde terug: x y x als x y x y y als x < y B)

Nadere informatie

Voorbeeld: Simulatie van bewegende deeltjes

Voorbeeld: Simulatie van bewegende deeltjes Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1

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

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

PHP. Les 4 : Variabelen

PHP. Les 4 : Variabelen PHP Les 4 : Variabelen Interessante links: o http://www.dbzweb.be/moermant/ o http://php.net/manual/en/function.echo.php o http://www.w3schools.com/php/default.asp Wat zijn variabelen? Variabelen zijn

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

van PSD naar JavaScript

van PSD naar JavaScript 2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en

Nadere informatie