1. Recursieve Algoritmen

Maat: px
Weergave met pagina beginnen:

Download "1. Recursieve Algoritmen"

Transcriptie

1 1. Recursieve Algoritmen Doel : Verdiepen van je inzicht in recursieve procedures ; bestudeer ook hoofdstuk 15 van de WWW-B1- reader op (en/of Savitch Hfst 14) Aan het einde van de B1 cursus heb je al kennis gemaakt met recursie. Er is sprake van recursie wanneer procedures zichzelf aanroepen. Recursie kan zowel direct als indirect plaatsvinden. Bij directe recursie roept de procedure zichzelf aan binnen de eigen procedure body. Tot deze vorm beperken wij ons op dit moment. 1.1 Herhalingstestjes Om je begrip van recursie te testen volgen hieronder enkele testvragen. Herinner je dat bij een recursief werkend programma(deel) je steeds via een stop -conditie moet testen of er met een volgende recursiestap verder gegaan moet worden, of dat het recursie-proces gestopt kan worden. Bestudeer het onderstaande programmaatje: Program Recursietest; Procedure RecursieDiepte ( getal : INTEGER ); write ( getal, ) ; IF getal > 0 THEN RecursieDiepte ( getal - 1 ) ; write ( getal, ) ; { RecursieDiepte } VAR startwaarde : INTEGER ; {program} startwaarde := 4 ; RecursieDiepte ( startwaarde ) ; writeln ; writeln ( Startwaarde heeft nu de waarde :, startwaarde ) {program} Vragen: 1) Ga na waarom het volgende resultaat op het scherm verschijnt: Startwaarde heeft nu de waarde : 4 2) Wat is in dit voorbeeld de (recursie-) terminatie-voorwaarde? Bij de volgende vraag heb je ook je kennis over het effect van het doorgeven van globale waarden via een valueof een VAR- (variabele) parameter nodig: Program Recursie_met_variabele_parameters; Procedure RecursieMetVarParameter ( VAR getal : INTEGER ) ; write ( getal, ) ; getal := getal - 1 ; IF getal > 0 THEN RecursieMetVarParameter ( getal ); write ( getal, ) ; { RecursieMetVarParameter } VAR getalswaarde : INTEGER ; { globale variabele declaratie } { program } getalswaarde := 4 ; RecursieMetVarParameter ( getalswaarde ) ; Writeln ( Na afloop geldt: getalswaarde =, getalswaarde ) { program } Vraag: - Wat drukt het programma nu af op het scherm? - Speciaal: wat is de waarde van getalswaarde na terugkeer uit de procedure aanroep? 1

2 1.2 Andere voorbeelden met recursie Hier volgt een recursieve uitwerking voor het als binair getal neerschrijven van een opgegeven decimale waarde. Aanroep van deze procedure met b.v. de decimale waarde 9 levert output ' 1001' op. program Recursief_Binair_Schrijven ; PROCEDURE Schrijf_Binair ( decimaalgetal : WORD ) ; IF decimaalgetal <= 1 THEN write ( decimaalgetal : 1 ) Schrijf_Binair ( decimaalgetal DIV 2 ) ; write ( decimaalgetal MOD 2 ) ; VAR decimale_waarde : INTEGER ; { declaratie van de globale variabele } write ( 'Tik positief geheel getal in: ') ; readln ( decimale_waarde ); {eventuele herhaling voor afdwingen positief getal} Schrijf_Binair ( decimale_waarde ) ; Voor de puzzelaars volgt hier nog een wat uitgebreider vraagstuk. Het is een aan Kernighan ontleende procedure itoc (Integer TO Character): program itoc_gebruik; PROCEDURE itoc ( getal : INTEGER ; VAR cijferstring : STRING ) ; { deze itoc converteert het getal getal naar een karakterstring in cijferstring } IF getal < 0 THEN cijferstring := - ; itoc ( -getal, cijferstring ) IF getal>=10 THEN itoc (getal DIV 10, cijferstring ) ; cijferstring := cijferstring + Chr( getal MOD 10 + Ord ( 0 ) ) ; { itoc_gebruik } VAR getalswaarde : INTEGER ; getalstekst : STRING; { program } write ( Tik getal in: ) ; readln( getalswaarde ) ; getalstekst := ; itoc ( getalswaarde, getalstekst ) ; write ( Na conversie naar tekst :, getalstekst, met lengte :, Length ( getalstekst )) Opdracht: ga na wat van dit programma de (totale!) uitvoer naar het beeldscherm is indien je het getal 123 als getalswaarde via het toetsenbord invoert. Opmerking tussendoor: De leesbare Ascii tekens lopen van 32 (de spatie) t/m 126 (de ~). De Ascii-codes 48 t/m 57 stellen de lettertekens 0 t/m 9 voor. De Ascii-codes 65 t/m 90 stellen de lettertekens A t/m Z voor. De Ascii-codes 97 t/m 122 stellen de lettertekens a t/m z voor. De resterende codes zijn allerlei leestekens en haakjes. 2

3 Opgave ( ter overpeinzing ): Een programmeur heeft (zie hierna) een recursieve routine geschreven om INTEGER-getallen als STRINGS te kunnen afdrukken (zie hierna). Helaas heeft hij een fout gemaakt. De routine werkt wel, maar doet niet precies wat er van verwacht wordt. Vraag: a. Beredeneer de uitvoer naar het scherm van de opdracht print_getal ( getal ). b. Herstel de fout die de programmeur gemaakt heeft. CONST cijferreeks : STRING = ; PROCEDURE print_cijfer ( cijf : INTEGER ) ; IF ( cijf < 0 ) OR ( cijf > 9 ) THEN write (? ) write ( cijferreeks [ cijf + 1 ] ) ; { print_cijfer } PROCEDURE print_getal (getal : INTEGER) ; IF getal < 0 THEN write ( - ) ; print_getal ( - getal ) IF getal < 10 THEN print_cijfer ( getal ) print_cijfer ( getal MOD 10 ) ; print_getal ( getal DIV 10 ) ; { print_getal } { program } print_getal (-1732) Een ander voorbeeld (dat al bij B1 ter sprake kwam) is: program recursie_voorbeeld; FUNCTION Head ( Woord : STRING ) : CHAR ; Head := Woord[1] ; FUNCTION Tail ( Zin : STRING ) : STRING ; Tail := copy ( Zin, 2, Length ( Zin ) - 1) ; {= alles behalve eerste teken} FUNCTION Vervang_Teken_In_Regel_Door ( Oudteken, Nieuwteken : CHAR; Regel: STRING ): STRING ; IF Regel = '' { d.w.z. de regel is leeg } THEN Vervang_Teken_In_Regel_Door := '' { resultaat: een lege string } IF Head ( Regel ) = Oudteken THEN Vervang_Teken_In_Regel_Door := NieuwTeken + Vervang_Teken_In_Regel_Door( Oudteken, Nieuwteken, Tail(Regel)) Vervang_Teken_In_Regel_Door := HEAD ( Regel ) + Vervang_Teken_In_Regel_Door( Oudteken, Nieuwteken, Tail(Regel)) ; writeln ( Vervang_Teken_In_Regel_Door ( 'l', 'k', 'lepelbak' ) ) Opdracht: ga na wat van dit programma de uitvoer naar het beeldscherm is. 3

4 1.3 Enkele moeilijkere constructies bij recursie We bespreken hier voorbeelden van enkele constructies, die we bij recursie kunnen tegenkomen: een recursieve functie/procedure die zichzelf meerdere malen aanroept het aanroepen van een recursieve procedure via een tussen-aanroep het gebruik van de FORWARD -declaratie Een klassiek voorbeeld: de torens van Hanoi Het klassieke probleem van de torens van Hanoi kwam bij de behandeling van recursie in de B1-cursus reeds ter sprake. We geven hier nogmaals de probleem-definitie en de oplossing. Merk op dat in die uitwerking de recursieve procedure Transporteer_Toren zichzelf twéémaal aanroept Probleemdefinitie: Voor een tempel in Hanoi staan drie zuilen; de eerste is gemaakt van koper, de tweede van zilver en de derde van goud. Om de koperen zuil bevinden zich honderd schijven. Van onder naar boven nemen de schijven steeds in doorsnede af. Een oude wijze monnik stelde zich de volgende taak: Verplaats de schijven van de koperen zuil naar de gouden zuil, schijf voor schijf door telkens de bovenste schijf van een zuil weg te nemen en op een andere zuil te plaatsen. Zorg ervoor dat nooit een grotere schijf op een kleinere terecht komt. Volgens de legende zou, als de monnik met zijn werk klaar was, het einde van de wereld daar zijn Probleemoplossing: Het probleem kan in drie stappen worden opgelost. 1) Transporteer de toren bestaande uit de bovenste 99 schijven van de koperen naar de zilveren zuil. 2) Verplaats de laatste, grootste, schijf van de koperen naar de gouden zuil. 3) Transporteer tot slot de toren van 99 schijven van de zilveren naar de gouden zuil. In dit recursievoorbeeld wordt het (recursief) aanroepen van een procedure vergeleken met het geven van een opdracht door een persoon (de oudere monnik) aan een ander (de minder oude leerling-monnik). PROGRAM Torens_van_Hanoi; TYPE Zuilen = ( Koperen, Gouden, Zilveren ); { enumerated TYPE } CONST NaamZuil: ARRAY[Zuilen] OF String[8] = ( koperen, gouden, zilveren ); PROCEDURE Verplaats_schijf (Schijfnummer:Integer; Bron, Doel : Zuilen); Writeln ( Verplaats schijf,schijfnummer:2, van de, NaamZuil [Bron], naar de, NaamZuil [ Doel ], zuil ) { Verplaats_schijf } ; PROCEDURE Transporteer_toren (Schijfnummer:Integer; Bron, Doel, Via : Zuilen); {verplaats schijf met Schijfnummer van de Bron(zuil) naar de Doel(zuil) met als tussenstation de Via(zuil)} IF Schijfnummer > 1 THEN Transporteer_toren ( Schijfnummer - 1, Bron, Via, Doel ); Verplaats_schijf ( Schijfnummer, Bron, Doel ); IF Schijfnummer > 1 THEN Transporteer_toren ( Schijfnummer - 1, Via, Doel, Bron ) {Transporteer_toren} ; Writeln ( De torens van Hanoi : ); Transporteer_toren ( 4, Koperen, Gouden, Zilveren ) Opdracht: ga voor jezelf na, wat de uitvoer van dit programma is. 4

5 1.3.2 Aanroepen van een recursieve procedure via een tussenaanroep Het is mogelijk om een recursieve procedure niet direct maar via een tussenstap aan te roepen. Zoiets kan bijvoorbeeld gebruikt worden om de leesbaarheid van een programmatekst te verbeteren; bijvoorbeeld als je wat extra parameters bij de recursieve aanroep wilt meegeven, terwijl je in eerste instantie niet zou verwachten dat dergelijke extra parameters nodig zijn. Een voorbeeld om dit te verduidelijken, gaat over een numeriek probleem: het (in dit hoofdstuk uiteraard: recursief) benaderend bepalen van de derde machtswortel van een reëel getal. Daarbij roept (zie hieronder) de eerst (vanuit het hoofdprogramma) aangeroepen procedure Derde_Machts_Wortel_van de echte benaderende procedure Wortel_3_Benadering op met een eerste benaderende waarde van 1.0. In die procedure Wortel_3_Benadering wordt steeds bepaald of het (absolute) verschil tussen het oorspronkelijke getal en de derde macht van die benaderde waarde voldoende klein is. Als die benadering nog niet voldoende nauwkeurig is, dan wordt een volgende (betere) benaderde waarde bepaald en het proces wordt recursief voortgezet. Bij dat steeds tussentijds bepalen van de derde macht van die benaderde waarde, maken we gebruik van een eveneens recursief geformuleerde functie Tot_de_Macht_N. program recursieve_benadering_derde_machts_wortel ; FUNCTION Tot_de_Macht_N ( getal : REAL ; macht : INTEGER ): REAL; {recursief} IF macht < 0 THEN Tot_de_Macht_N := 1 / Tot_de_Macht_N ( getal, - macht ) IF macht = 0 THEN Tot_de_Macht_N := 1.0 Tot_de_Macht_N := getal * Tot_de_Macht_N ( getal, macht - 1 ) ; FUNCTION Wortel_3_Benadering ( benadering, waarde, precisie : REAL ): REAL ; IF ( Abs (waarde - Tot_de_Macht_N ( benadering, 3 )) < Abs ( precisie )) THEN Wortel_3_Benadering := benadering Wortel_3_Benadering := Wortel_3_Benadering ( ( benadering + waarde /(benadering*benadering)) / 2, waarde, precisie ) ; FUNCTION Derde_Machts_Wortel_van ( waarde : REAL ) : REAL ; CONST precisie = ; Derde_Machts_Wortel_van := Wortel_3_Benadering ( 1.0, waarde, precisie ) ; VAR waarde, uitkomst : REAL ; { globale variabelen } { program } write ( 'Geef getal: ') ; readln ( waarde ) ; uitkomst := Derde_Machts_Wortel_van ( waarde ) ; writeln( 'De derde macht''s wortel van ', waarde:10:4,' is: ',uitkomst:10:5) We zien in dit voorbeeld, dat eerst op een natuurlijke manier een tussenfunctie aan geroepen wordt (immers: we verwachten, dat we inderdaad kunnen zeggen: geef me de derdemachtswortel van een getal. Die tussen - functie zorgt ervoor, dat de èchte recursieve functie Wortel_3_Benadering_van met 2 extra parameters wordt aangeroepen: een parameter, waarmee een initiële benaderde waarde (1.0) wordt meegegeven en een andere extra parameter, waarmee een precisie-wens wordt vastgelegd. Bij de functie Tot_de_Macht_N zien we trouwens, dat een van de parameterwaarden (namelijk die voor macht ) gebruikt wordt om de recursiediepte te bepalen. 5

6 1.3.3 Het gebruik van de FORWARD -declaratie Bij het gebruik van recursie kan het voorkomen, dat twee (of meer) recursieve procedures elkaar wederzijds aanroepen; bijvoorbeeld dat de procedures Doe_iets een procedure Doe_anders aanroept en dat daarna Doe_anders op haar beurt Doe_iets aanroept. We komen dan te staan voor het probleem, dat de compiler normaal gesproken vereist, dat Doe_iets al vóór Doe_anders gedeclareerd moet zijn, maar ook dat Doe_anders al vóór Doe_iets gedeclareerd is. Omdat dit een onmogelijk dilemma zou opleveren, is in Pascal het gebruik van een FORWARD -declaratie mogelijk: je kunt daarbij de normale kop (inclusief parameterlijst) van een procedure, laten volgen door het gereserveerde woord FORWARD, om aan te geven dat de verdere uitwerking van die procedure een stuk verderop zal komen. De compiler staat het ná zo n FORWARD -declaratie al toe, om de betreffende procedure al aan te roepen, nog vóórdat hij echt ingevuld is. 1.4 Practicumopdracht 1: over Recursieve algoritmen Hoofdlettergebruik in een zin Maak een recursief programma waarmee een (niet al te lange!; b.v. <= 20 tekens) ingetikte zin/regel, waarin slordig met hoofdletters is omgesprongen, omgezet wordt in een regel, die met een hoofdletter begint en waarbij in de rest van de regel alle hoofdletters door overeenkomstige kleine letters zijn vervangen. Voorbeeld: waar gaat DiT naar Toe? moet worden: Waar gaat dit naar toe? Hint: zoek op wat de TP-procedures Ord(..) en Chr(..) doen en gebruik ze in je programma Het Byte -gewijs recursief schrijven van een getal Maak een (eveneens recursieve) variant op het als voorbeeld gegeven programma waarmee een decimaal gegeven getal niet slechts als een binair getal (met nullen en énen) wordt afgedrukt, maar waarbij die uitvoer bovendien byte -gewijs wordt getoond. Daarmee wordt bedoeld, dat de uitvoer steeds uit één of meer groepjes van 8 bits moet bestaan. Zo moet het programma voor het getal 9 als output ' ' opleveren (dus: mèt leading zeros) en voor het getal 34567: ' ' Recursief de sinus -waarde van een hoek bepalen Het is misschien al lang geleden dat je voor het laatst iets hebt moeten doen met de sin (α) = a/c zogenaamde sinus van een hoek. In de meetkunde geldt voor een rechthoekige c driehoek, dat de sinus van een van de (niet -rechte) hoeken het quotiënt is van de a lengte van de tegenoverliggende rechthoekszijde en van de schuine zijde. Een paar (benaderde) waarden zijn: sin(0 o ) = 0 ; sin(30 o ) = 0,500 ; sin(45 o ) = 0,707 ; α sin(90 o ) = 1,000 en (meer abstract): sin(180 o ) = 0 en sin( -30 o ) = - 0,500. b Via de analyse, een aparte tak van sport in de wiskunde, is het mogelijk om voor de sinuswaarde van een hoek x de volgende b enaderende reeks -formule af te leiden: x **3 x **5 ( x **(2 * n + 1)) sin( x ) = x ( 1) ** n * 3! 5! (2* n + 1)! waarbij de dubbele sterretjes staan voor machtsverheffen (dus bijvoorbeeld: x**3 betekent x -tot-de-derdemacht) en het uitroepteken staat voor faculteit (waarvoor bijvoorbeeld geldt: 5! = 5*4*3*2*1 = 120). N.B. Platvloers, zonder gebruik te maken van de horizontale deelstrepen, kun je schrijven: sin (x) = x - x**3/3! + x**5/5! (-1)**n * (x**(2*n+1)/(2*n+1)! Je kunt de reeks zien als een kop -term, gevolgd door een staart -term, die ook weer een benaderende reeks is. In het Borland Pascal-systeem is een ingebouwde functie sin aanwezig, maar wij willen nu zelf een functie Sinus ontwerpen en implementeren, die [via aanroep van een recursieve vervolgfunctie] steeds verder e bijdragen (lees: breukwaarden) laat bepalen waarmee de sinus benaderd wordt. Zowel voor de aanroep van die ingebouwde sin- als onze eigen sinus-functie moeten we eerst de hoek-waardein-graden omrekenen naar radialen (cirkeldelen, waarbij een halve cirkel π radialen zijn). De waarde π is binnen Borland Pascal onder de constante-naam pi. De omrekening van graden naar radialen kan als volgt: Hoek_in_radialen = Hoek_in_graden * (π / 180 ) Zo geldt: 0 o = 0 radialen ; 30 o = π/6 radialen ; 90 o = π/2 radialen. Implementeer je functie eerst door hem een vast aantal termen van de reeks te laten meenemen in de berekening en verfijn je implementatie later door de recursie te stoppen als de termen te klein worden. 6

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

Turbo Pascal (deel 1)

Turbo Pascal (deel 1) Turbo Pascal (deel 1) MSX CLUB MAGAZINE 34 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 Erik van Bilsen leert u het klappen van de Turbo Pascal zweep. Turbo Pascal toepassen Deze

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

7 Omzetten van Recursieve naar Iteratieve Algoritmen

7 Omzetten van Recursieve naar Iteratieve Algoritmen 7 Omzetten van Recursieve naar Iteratieve Algoritmen Het lijkt mogelijk om elke oplossings-algoritme, die vaak in eerste instantie recursief geformuleerd werd, om te zetten in een iteratieve algoritme

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

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

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

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

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

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

Nadere informatie

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok B Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 7 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering &

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

{ specificatie (contract) en toelichting }

{ specificatie (contract) en toelichting } Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software

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

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

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

Nadere informatie

Totaal

Totaal Programmeren Blok A Wat was het doel? http://www.win.tue.nl/ wstomv/edu/2ip05/ College 2 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology

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

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

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

Deze stelling zegt dat je iedere rechthoekige driehoek kunt maken door drie vierkanten met de hoeken tegen elkaar aan te leggen.

Deze stelling zegt dat je iedere rechthoekige driehoek kunt maken door drie vierkanten met de hoeken tegen elkaar aan te leggen. Meetkunde Inleiding We beginnen met het doorlezen van alle theorie uit hoofdstuk 3 van het boek. Daar staan een aantal algemene regels goed uitgelegd. Waar je nog wat extra uitleg over nodig hebt, is de

Nadere informatie

Trillingen en geluid wiskundig

Trillingen en geluid wiskundig Trillingen en geluid wiskundig 1 De sinus van een hoek 2 Radialen 3 Uitwijking van een harmonische trilling 4 Macht en logaritme 5 Geluidsniveau en amplitude 1 De sinus van een hoek Sinus van een hoek

Nadere informatie

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

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

Nadere informatie

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

Pascal uitgediept Data structuren

Pascal uitgediept Data structuren Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur

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

ProefToelatingstoets Wiskunde B

ProefToelatingstoets Wiskunde B Uitwerking ProefToelatingstoets Wiskunde B Hulpmiddelen :tentamenpapier,kladpapier, een eenvoudige rekenmachine (dus geen grafische of programmeerbare rekenmachine) De te bepalen punten per opgave staan

Nadere informatie

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen.  wstomv/edu/2ip05/ Per ronde werpt elke speler 1 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ College 1 5 spelers,2 dobbelstenen Probleem met dobbelspel Per ronde werpt elke speler 1 Tom Verhoeff Technische Universiteit Eindhoven

Nadere informatie

PROS1E1 Gestructureerd programmeren in C Dd/Kf/Bd

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

Nadere informatie

Methode: Verdeel en heers

Methode: Verdeel en heers Programmeren Blok B Thema: Complexiteit beteugelen http://www.win.tue.nl/ wstomv/edu/ip05/ College Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering

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

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen? 2IP05: Programmeren Blok A http://www.win.tue.nl/ wstomv/edu/2ip05/ 5 spelers, 2 dobbelstenen Probleem met dobbelspel College 1 Per ronde werpt elke speler 1 Kees Hemerik Tom Verhoeff Technische Universiteit

Nadere informatie

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

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

Nadere informatie

wiskunde B pilot havo 2015-II

wiskunde B pilot havo 2015-II wiskunde B pilot havo 05-II Veilig vliegen De minimale en de maximale snelheid waarmee een vliegtuig veilig kan vliegen, zijn onder andere afhankelijk van de vlieghoogte. Deze hoogte wordt vaak weergegeven

Nadere informatie

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof Programmeren Blok A Persistente opslag van waarden http://www.win.tue.nl/ wstomv/edu/2ip05/ College 4 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering

Nadere informatie

De uitleg in dit moduul is gebaseerd op een CASIO rekenmachine fx-82ms. Voor de verschillen met de TI-30X II zie de bijlage achterin.

De uitleg in dit moduul is gebaseerd op een CASIO rekenmachine fx-82ms. Voor de verschillen met de TI-30X II zie de bijlage achterin. Rekenmachine 1. Rekenmachine De uitleg in dit moduul is gebaseerd op een CASIO rekenmachine fx-82ms. Voor de verschillen met de TI-30X II zie de bijlage achterin. Onze rekenmachine geeft het resultaat

Nadere informatie

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

Opgave 1. (4 punten) Inleiding: Vraag: Hints: (maximaal 2 bonuspunten) Tentamen 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

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

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

Nadere informatie

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

{ auteur, toelichting }

{ auteur, toelichting } Programmeren Blok A Trilogie van (programmeer)talen http://www.win.tue.nl/ wstomv/edu/ip0/ College Syntaxis (vormleer): Hoe ziet t eruit, hoe schrijf je t? Tom Verhoeff Technische Universiteit Eindhoven

Nadere informatie

Uitwerkingen van de opgaven uit Pi

Uitwerkingen van de opgaven uit Pi Uitwerkingen van de opgaven uit Pi Frits Beukers January 3, 2006 Opgave 2.3. Bedoeling van deze opgave is dat we alleen een schatting geven op grond van de gevonden tabel. Er worden geen bewijzen of precieze

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

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 16 mei uur

Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 16 mei uur Wiskunde B Profi (oude stijl) Eamen VWO Voorbereidend Wetenschappelijk Onderwijs Tijdvak Woensdag 6 mei 3.30 6.30 uur 20 0 Voor dit eamen zijn maimaal 9 punten te behalen; het eamen bestaat uit 7 vragen.

Nadere informatie

Biljarten op een ellips. Lab kist voor 3-4 vwo

Biljarten op een ellips. Lab kist voor 3-4 vwo Biljarten op een ellips Lab kist voor 3-4 vwo Dit lespakket behoort bij het ellipsvormige biljart van de ITS Academy. Ontwerp: Pauline Vos, in opdracht van Its Academy Juni 2011 Leerdoelen: - kennismaken

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

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

Algebra leren met deti-89

Algebra leren met deti-89 Algebra leren met deti-89 Werkgroep T 3 -symposium Leuven 24-25 augustus 2001 Doel Reflecteren op het leren van algebra in een computeralgebra-omgeving, en in het bijzonder op het omgaan met variabelen

Nadere informatie

Programmeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff

Programmeren Blok B. Onderwerpen.   wstomv/edu/2ip05/ College 8. Tom Verhoeff Programmeren Blok B Onderwerpen http://www.win.tue.nl/ wstomv/edu/2ip05/ College 8 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Verdelen

Nadere informatie

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001 Turbo Pascal deel 3 MSX CLUB MAGAZINE 36 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering van de cursus gaan we scrollen en wel smooth-scroll in maar liefst vier richtingen.

Nadere informatie

44 De stelling van Pythagoras

44 De stelling van Pythagoras 44 De stelling van Pythagoras Verkennen Pythagoras Uitleg Je kunt nu lezen wat de stelling van Pythagoras is. In de applet kun je de twee rode punten verschuiven. Opgave 1 a) Verschuif in de applet punt

Nadere informatie

10.0 Voorkennis. cos( ) = -cos( ) = -½ 3. [cos is x-coördinaat] sin( ) = -sin( ) = -½ 3. [sin is y-coördinaat] Willem-Jan van der Zanden

10.0 Voorkennis. cos( ) = -cos( ) = -½ 3. [cos is x-coördinaat] sin( ) = -sin( ) = -½ 3. [sin is y-coördinaat] Willem-Jan van der Zanden 10.0 Voorkennis 5 1 6 6 cos( ) = -cos( ) = -½ 3 [cos is x-coördinaat] 5 1 3 3 sin( ) = -sin( ) = -½ 3 [sin is y-coördinaat] 1 Voorbeeld 1: Getekend is de lijn k: y = ½x 1. De richtingshoek α van de lijn

Nadere informatie

1E HUISWERKOPDRACHT CONTINUE WISKUNDE

1E HUISWERKOPDRACHT CONTINUE WISKUNDE E HUISWERKOPDRACHT CONTINUE WISKUNDE Uiterste inleverdatum dinsdag oktober, voor het begin van het college N.B. Je moet de hele uitwerking opschrijven en niet alleen het antwoord geven. Je moet het huiswerk

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

9.1 Recursieve en directe formules [1]

9.1 Recursieve en directe formules [1] 9.1 Recursieve en directe formules [1] Voorbeeld: 8, 12, 16, 20, 24, is een getallenrij. De getallen in de rij zijn de termen. 8 is de eerste term (startwaarde, u 0 ) 12 is de tweede term (u 1 ) 24 is

Nadere informatie

Blog-Het gebruik van variabelen in Excel VBA

Blog-Het gebruik van variabelen in Excel VBA Blog-Het gebruik van variabelen in Excel VBA Versie : 2012.01.31.1 (Blog http://www.reinder.eu) Dank voor de leuke reacties op het vorige blog en ook dank voor de kritische noot over het nivo dat de gebruiker

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

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

Nadere informatie

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Functies. Huub de Beer. Eindhoven, 4 juni 2011 Functies Huub de Beer Eindhoven, 4 juni 2011 Functies: je kent ze al Je hebt al verschillende PHP functies gebruikt: pi() om het getal π uit te rekenen. sin( 0.453 ) om het de sinus van het getal 0.453

Nadere informatie

pythagoras handleiding inhoudsopgave 1 de grote lijn 2 applets 3 bespreking per paragraaf 4 tijdsplan 5 materialen voor een klassengesprek pythagoras

pythagoras handleiding inhoudsopgave 1 de grote lijn 2 applets 3 bespreking per paragraaf 4 tijdsplan 5 materialen voor een klassengesprek pythagoras inhoudsopgave 1 de grote lijn applets 3 bespreking per paragraaf 4 tijdsplan 5 materialen voor een klassengesprek 1 de grote lijn hoofdlijn de zijlijn De oppervlakte van rechthoekige driehoeken. Van een

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

Hoofdstuk 5: Functies voor getallen en teksten

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

Nadere informatie

Arrays in LOGO. In LOGO heeft de eerste item van de array standaard index 1.

Arrays in LOGO. In LOGO heeft de eerste item van de array standaard index 1. Arrays in LOGO Een array Is één variabele die verschille items bevat. Iedere item heeft een waarde. De items staan in een bepaalde volgorde. Het is dus een rij van waarden. De positie van iedere item in

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Uitwerking tentamen Algoritmiek 9 juli :00 13:00 Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel

Nadere informatie

Examen VWO. Wiskunde B Profi

Examen VWO. Wiskunde B Profi Wiskunde B Profi Eamen VWO Voorbereidend Wetenschappelijk Onderwijs Tijdvak Donderdag 25 mei 3.30 6.30 uur 20 00 Dit eamen bestaat uit 7 vragen. Voor elk vraagnummer is aangegeven hoeveel punten met een

Nadere informatie

Het warmteverlies van het lichaamsoppervlak aan de wordt gegeven door de volgende formule:

Het warmteverlies van het lichaamsoppervlak aan de wordt gegeven door de volgende formule: Opgave 1. (4 punten) Inleiding: Een vleermuis is een warmbloedig zoogdier. Dat wil zeggen dat hij zijn lichaamstemperatuur op een konstante waarde moet zien te houden. Als de omgeving kouder is dan de

Nadere informatie

Vergelijkingen met één onbekende

Vergelijkingen met één onbekende - 89 - Hoofdstuk 3: ergelijkingen met één onbekende Opgave boek pag 67 nr. 5: Los op in R a. 3 ( + ) 4 7.................. {... }... proef : 1 e lid :... e lid :... b. ( 3 ) + 7 5 ( )........................

Nadere informatie

Faculteit Economie en Bedrijfskunde

Faculteit Economie en Bedrijfskunde Faculteit Economie en Bedrijfskunde Op dit voorblad vindt u belangrijke informatie omtrent het tentamen. Voordat u met het tentamen t: lees dit voorblad! Tentamen: V&O IV: Programmeren Tentamendatum &

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

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

Small Basic Console Uitwerking opdrachten

Small Basic Console Uitwerking opdrachten Opdracht 1 3 getallen => inlezen Gemiddelde uitrekenen Resultaat afdrukken TextWindow.WriteLine("Dit programma berekend het gemiddelde van drie door U in te voeren getallen.") TextWindow.Write("Voer getal

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

5.1 Herleiden [1] Herhaling haakjes wegwerken: a(b + c) = ab + ac (a + b)(c + d) = ac + ad + bc + bd (ab) 2 = a 2 b 2

5.1 Herleiden [1] Herhaling haakjes wegwerken: a(b + c) = ab + ac (a + b)(c + d) = ac + ad + bc + bd (ab) 2 = a 2 b 2 Herhaling haakjes wegwerken: a(b + c) = ab + ac (a + b)(c + d) = ac + ad + bc + bd (ab) = a b 5.1 Herleiden [1] Voorbeeld 1: (a + 5)(a 6) (a + 5)(-a + 7) = a 6a + 5a 30 ( a + 14a 5a + 35) = a 6a + 5a 30

Nadere informatie

3. Lineaire vergelijkingen

3. Lineaire vergelijkingen 3. Lineaire vergelijkingen Lineaire vergelijkingen De vergelijking 2x = 3 noemen we een eerstegraads- of lineaire vergelijking. De onbekende x komt er namelijk tot de eerste macht in voor. Een eerstegraads

Nadere informatie

Eindexamen wiskunde B1-2 vwo 2007-II

Eindexamen wiskunde B1-2 vwo 2007-II ier tappen ij het tappen van bier treden verschillen op in de hoeveelheid bier per glas. Uit onderzoek blijkt dat de hoeveelheid bier die per glas getapt wordt bij benadering normaal verdeeld is met een

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

Checklist Wiskunde B HAVO HML

Checklist Wiskunde B HAVO HML Checklist Wiskunde B HAVO 4 2014-2015 HML 1 Hoofdstuk 1 Lineaire vergelijkingen en lineaire ongelijkheden oplossen. Wanneer klapt het teken om? Haakjes en breuken wegwerken. Ontbinden in factoren: x buiten

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

Cursus Algoritmiek --- najaar 2005

Cursus Algoritmiek --- najaar 2005 Cursus Algoritmiek --- najaar 2005 Practicumopdracht 3 : communicatie tussen programma-onderdelen (vervolg), via call-by-value- versus call-by-reference-parameters, of via een functiewaarde Vooraf: a)

Nadere informatie

Cursus Algoritmiek - - - najaar 2005

Cursus Algoritmiek - - - najaar 2005 Cursus Algoritmiek - - - najaar 2005 Practicumopdracht 4 : werken met kale gegevensbestanden 1. Achtergrond In de 2 e en de 3 e practicumopdracht heb je al kennis gemaakt met het via het toetsenbord laten

Nadere informatie

Examen VWO. wiskunde B1,2. tijdvak 2 woensdag 20 juni uur. Bij dit examen hoort een uitwerkbijlage.

Examen VWO. wiskunde B1,2. tijdvak 2 woensdag 20 juni uur. Bij dit examen hoort een uitwerkbijlage. Eamen VW 007 tijdvak woensdag 0 juni 13.30-16.30 uur wiskunde 1, ij dit eamen hoort een uitwerkbijlage. Dit eamen bestaat uit 17 vragen. Voor dit eamen zijn maimaal 81 punten te behalen. Voor elk vraagnummer

Nadere informatie

Kleuren met getallen Afbeeldingen weergeven

Kleuren met getallen Afbeeldingen weergeven Activiteit 2 Kleuren met getallen Afbeeldingen weergeven Samenvatting Computers slaan tekeningen, foto s en andere afbeeldingen op door het gebruik van getallen. De volgende opdracht laat zien hoe. Kerndoelen

Nadere informatie

4.0 Voorkennis. 1) A B AB met A 0 en B 0 B B. Rekenregels voor wortels: Voorbeeld 1: Voorbeeld 2: Willem-Jan van der Zanden

4.0 Voorkennis. 1) A B AB met A 0 en B 0 B B. Rekenregels voor wortels: Voorbeeld 1: Voorbeeld 2: Willem-Jan van der Zanden 4.0 Voorkennis Rekenregels voor wortels: 1) A B AB met A 0 en B 0 A A 2) met A 0 en B 0 B B Voorbeeld 1: 2 3 23 6 Voorbeeld 2: 9 9 3 3 3 1 4.0 Voorkennis Voorbeeld 3: 3 3 6 3 6 6 6 6 6 1 2 6 Let op: In

Nadere informatie

VOORBLAD SCHRIFTELIJKE TOETSEN

VOORBLAD SCHRIFTELIJKE TOETSEN Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG : EP11/EP12 TOETSDATUM : 07-02-2014 TIJD : 13.00 14.30 uur AANTAL PAGINA S (incl.

Nadere informatie

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

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

Nadere informatie

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal)

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal) THEORIE TALSTELSELS De binaire code Het geheugenelement van de computer kan slechts twee verschillende waarden bevatten. De schakelingen uit de computer werken daarom met een tweetallig ofwel binair stelsel.

Nadere informatie

Cursus MSW-Logo. Def. Recursie: recursie is het oproepen van dezelfde functie of procedure binnen de functie of procedure

Cursus MSW-Logo. Def. Recursie: recursie is het oproepen van dezelfde functie of procedure binnen de functie of procedure Hfdst 1: De schildpadwereld Recursie Cursus MSW-Logo Def. Recursie: recursie is het oproepen van dezelfde functie of procedure binnen de functie of procedure Regelmatige vierhoeken Voorbeeld in Logo: TO

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

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

Hieronder zie je hoe dat gaat. Opgave 3. Tel het aantal routes in de volgende onvolledige roosters van linksboven naar rechtsonder.

Hieronder zie je hoe dat gaat. Opgave 3. Tel het aantal routes in de volgende onvolledige roosters van linksboven naar rechtsonder. Groepsopdracht 1: Volledige en onvolledige roosters Voor een volledig rooster kun je de driehoek van Pascal gebruiken om te weten te komen hoeveel routes er van A naar B zijn. Bij onvolledige roosters

Nadere informatie

Achtste college algoritmiek. 8 april Dynamisch Programmeren

Achtste college algoritmiek. 8 april Dynamisch Programmeren Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst

Nadere informatie

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2 BLOK 3 HOOFDSTUK 8 PARAGRAAF 2 4-BITS DEMOCOMPUTER IN 1000 STO R0 0000 opdracht tot opslaan 0000 waar moet het worden opgeslagen IN 1000 LD R1 0011 opdracht tot kopiëren 0000 welk adres moet gekopieerd

Nadere informatie

Een diverse inhoud deze keer: aangepaste procedures voor GIOS, machinetaal, geheugenmanipulatie, BASIC-equivalenten en recursief programmeren.

Een diverse inhoud deze keer: aangepaste procedures voor GIOS, machinetaal, geheugenmanipulatie, BASIC-equivalenten en recursief programmeren. Turbo Pascal deel 6 MSX Club Magazine 36 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 Een diverse inhoud deze keer: aangepaste procedures voor GIOS, machinetaal, geheugenmanipulatie,

Nadere informatie

Practicumopdracht 8 : Recursief bomen tekenen en complexiteit van algoritmen

Practicumopdracht 8 : Recursief bomen tekenen en complexiteit van algoritmen Cursus Algoritmiek - - - najaar 2005 Practicumopdracht 8 : Recursief bomen tekenen en complexiteit van algoritmen Ook deze opdracht is bedoeld voor 2 weken: 1 e week t/m deelopdracht 8.2 ; maak in de 2

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

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

Een typisch programma in C en C++ bestaat uit een aantal onderdelen: Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde

Nadere informatie

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

9 Meer over datatypen

9 Meer over datatypen 9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,

Nadere informatie

Docentenhandleiding havo deel 3 CB. Docentenhandleiding Netwerk 3e editie. deel 3B havo

Docentenhandleiding havo deel 3 CB. Docentenhandleiding Netwerk 3e editie. deel 3B havo Docentenhandleiding Netwerk 3e editie deel 3B havo 0 Hoofdstuk 7 Verschillende verbanden Beginniveau Al eerder hebben de leerlingen kennis gemaakt met lineaire, kwadratische en exponentiële verbanden.

Nadere informatie

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:

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

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 TU/e Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica (Na de toets gecorrigeerde versie) PROBLEEM: Sleutels Lees

Nadere informatie

0. voorkennis. Periodieke verbanden. Bijzonder rechthoekige driehoeken en goniometrische verhoudingen

0. voorkennis. Periodieke verbanden. Bijzonder rechthoekige driehoeken en goniometrische verhoudingen 0. voorkennis Periodieke verbanden Bijzonder rechthoekige driehoeken en goniometrische verhoudingen Er zijn twee verschillende tekendriehoeken: de 45-45 -90 driehoek en de 30-0 -90 -driehoek. Kenmerken

Nadere informatie