STRUCTUUR VAN COMPUTERPROGRAMMA S I

Vergelijkbare documenten
STRUCTUUR VAN COMPUTERPROGRAMMA S I. recursie/iteratie (4 punten) Vraag 2 Destructieve operatoren

Oefeningen Jaarproject I

Schriftelijk examen: theorie en oefeningen Fysica: elektromagnetisme

OEFENINGEN PYTHON REEKS 6

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

Succes! Theo DʼHondt 13 juni 2010

TAPPY PLANE. Voor gevorderde scratch-ers.

OEFENINGEN PYTHON REEKS 1

Examen Discrete Wiskunde donderdag 12 april, 2018

Les 1 - Brussels sprouts

Programmeren (1) Examen NAAM:

Oefeningenexamen Informatica: juni 2015

Examen VMBO-KB. wiskunde CSE KB. tijdvak 2 dinsdag 17 juni uur. Bij dit examen hoort een uitwerkbijlage.

wiskunde CSE GL en TL

WISKUNDE 3 PERIODEN EUROPEES BACCALAUREAAT DATUM : 8 juni 2006 ( s morgens) DUUR VAN HET EXAMEN : 3 uur (180 minuten) TOEGESTANE HULPMIDDELEN :

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Je kunt in de grafiek aflezen wat de gewichtstoename is van schapen die zwanger zijn van één, twee of drie lammetjes.

OEFENINGEN PYTHON REEKS 1

EXAMEN juni 2016 Gegevensbanken

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

Balance Me. Bijlage 1. Arschoot Elien. Herhaling boekhouden. 3 de jaar ASO. D hauwers Fien. Lerarenhandleiding

Maak automatisch een geschikte configuratie van een softwaresysteem;

Automaten en Berekenbaarheid 2016 Oplossingen #4

Examen VMBO-GL en TL-COMPEX

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

HANDLEIDING FRIREC. Versie 1.2.2

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad

Examen Algoritmen en Datastructuren III

ZESDE KLAS MEETKUNDE

vavo Toets VWO Examenklas Periode: 1 Toetsduur: 180 minuten (echte toets 120 minuten) Toetscode PTA: T1 Constructeur: M.

Opdrachten Oppervlakte

9.18 Macro s: oefeningen

Het oplossen van vergelijkingen Voor het benaderen van oplossingen van vergelijkingen van de vorm F(x)=0 bespreken we een aantal methoden:

Balance Me. Arschoot Elien. Herhaling boekhouden. 3 de jaar ASO. D hauwers Fien. Leerlingenhandleiding. (Afbeelding: persoon met vergrootglas, sd)

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Is er een universiteit in Leuven? Kan je 3 vakken op de secundaire school opnoemen? Wat betekent tarieven? Een actieve quiz!

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Examen Discrete Wiskunde donderdag 7 maart, 2019

Handleiding digitaal invullen vragenlijsten (webforms) in MONEA

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

Pythoncursus. Eindopdracht L-systemen. Joost, Koen, Marein en Ramon december 2015

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

TECHNISCHE UNIVERSITEIT DELFT Faculteit der Civiele Techniek en Geowetenschappen

(iii) Enkel deze bundel afgeven; geen bladen toevoegen, deze worden toch niet gelezen!

CARGO DATA SYSTEMS BV

Lineaire data structuren. Doorlopen van een lijst

9.19 Macro s: oefeningen

Overzichten genereren in het FMIS

(vi) Als u een stelling, eigenschap,... gebruikt, formuleer die dan, toon aan dat de voorwaarden vervuld zijn, maar bewijs die niet.

OEFENINGEN PYTHON REEKS 1

Zwart-wit en grijstinten

Hoe deelnemen aan de online verkopen?

Examen VWO-Compex. Wiskunde A1 (nieuwe stijl)

instellen in Outlook 2010

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Een breuk is een getal dat kleiner is dan 1. Als je iets in tweeën, drieën, vieren enz. breekt, dan krijg je een breuk.

Genoeg ruimte? In de methodes

Werkinstructie. voor vreemdelingenadvocaten

Examen HAVO. tijdvak 2 dinsdagdinsdag uur

Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 30 juni 2014: algemene feedback

Handleiding Zarafa Webapp. The Best Open Source & Collaboration Software

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen

SketchUp L D tekenen

Examen VWO. wiskunde A1,2. tijdvak 2 woensdag 18 juni uur

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

Computationele Intelligentie

Handleiding Digitaal logboek Diabetes

Algemeen. Aansluitend bij dit doel, volgt het Wis & Co project de ontwikkeling van een grote groep 4-5-jarigen op gedurende een periode van 5 jaar.

Examen Discrete Wiskunde donderdag 8 maart, 2018

Introductie. Een magazijn van binnen

ONTWERP VAN GEDISTRIBUEERDE SOFTWARE ACADEMIEJAAR STE EXAMENPERIODE, 23 JANUARI 2012, 8U30 12U00 VRAAG 1: VERDEELDE SYSTEMEN [10 MIN]

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.

Schriftelijk examen: theorie en oefeningen Fysica: elektromagnetisme

Chapter 4: Continuous-time Markov Chains (Part I)

Is deze niet goed leesbaar? Klik hier voor de webversie.

WISKUNDE 5 PERIODEN. DATUM : 8 juni 2009

HOE TEKEN IK EEN OMGEVINGSMODEL

Nummerblokken tool. Gebruikershandleiding. Openbare informatie. Datum 17 maart Auteur Arjen Knibbe. Telefoon Versie 1.

Inleiding Het adres Hoe werkt ? Je adres registreren Aanmelden bij Outlook Schermonderdelen...

Vanaf 13 mei 2013 is de beschikbare ruimte zelfs vergroot naar 15 GB! (Dit betreft Gmail + Google Drive samen)

Je eerste mailtjes met een computer

Handleiding: Buitenlandse Specialiteiten

Examen VMBO-GL en TL 2008 wiskunde CSE GL en TL tijdvak 1 donderdag 22 mei uur

Funkenschlag Een business-spel voor 2 tot 6 spelers

Voorkennis: De kinderen kennen het gebruik van Internet. Kinderen weten dat berichten worden verstuurd als Binaire gegevens.

Examen VMBO-BB. wiskunde CSE BB. tijdvak 21 donderdag 24 mei uur. Beantwoord alle vragen in dit opgavenboekje.

molenaarsles Opdracht 1 Welkom in één van de Schatkamers van de wereld. In deze lessen leer je meer over de molens van Kinderdijk. Wat gebeurt daar?

2. Het getal = 1800 is even. De andere antwoorden zijn oneven: 2009, = 11, = 191, = 209.

1. Programmeerblokken

Examen VMBO-GL en TL. wiskunde CSE GL en TL. tijdvak 2 dinsdag 18 juni uur. Bij dit examen hoort een uitwerkbijlage.

Examen Datastructuren en Algoritmen II

WISKUNDE 5 PERIODEN. DATUM : 11 juni 2007 ( s morgens) Zakrekenmachine die niet grafisch en niet programmeerbaar is.

Tweede college algoritmiek. 12 februari Grafen en bomen

Leer- en oefenbundel voor het 4 de leerjaar

Handleiding Openlesdagen

Ruitjes vertellen de waarheid

Informatica: C# WPO 4

8C080 deel BioModeling en bioinformatica

TU/e 2DD50: Wiskunde 2 (1)

Transcriptie:

STRUCTUUR VAN COMPUTERPROGRAMMA S I Examen eerste zit 19 januari 2012 Eerste bachelor computerwetenschappen + eerste bachelor wiskunde + schakelprogramma's Dit examen is gesloten boek. Neem voor elke vraag een volledig nieuw blad en schrijf op elk blad je naam, richting en het nummer van de vraag. Veel succes! Vraag 1 recursie/iteratie (5 punten) De punten van de examens Structuur I, Lineaire Algebra en Grondslagen I worden verzameld in een geneste lijst '((jan 10 12 17) (piet 14-15) (an 15 14 16) ) waarbij voor iedere student zijn/haar resultaat voor elk vak wordt bijgehouden. Het streepje bij piet in deze lijst betekent een afwezigheid op het examen Lineaire Algebra. a) Schrijf een procedure (bereken-gemiddelde lijst) die een dergelijke lijst als invoer neemt en als resultaat een lijst teruggeeft die bestaat uit deellijsten die de naam en het gemiddelde van de drie punten bevatten. Zo gauw een student afwezig is op één van de examens, wordt hij/zij niet opgenomen in het resultaat. Bijvoorbeeld (bereken-gemiddelde '((jan 10 12 17) (piet 14-15) (an 15 14 16))) => ((jan 13) (an 15)) b) Levert je oplossing voor a) een recursief of iteratief proces? Leg in je eigen woorden uit waarom je dit antwoord geeft (argumenteer bondig). Schrijf de andere versie voor a. c) Schrijf een procedure (bereken-algemeen lijst bereken-resultaat) die een veralgemening is van de procedure bereken-gemiddelde van onderdeel a). De procedure bereken-algemeen is een veralgemening omdat er nu een variabel aantal punten kan voorkomen voor elke student (meer of minder vakken). Bovendien bepaalt de procedure bereken-resultaat hoe deze cijfers worden gecombineerd. d) Herschrijf je oplossing voor a) door de procedure bereken-algemeen te gebruiken. e) Schrijf een procedure (bereken-gewogen-gemiddelde lijst) die gebruik maakt van de hogere orde procedure uit onderdeel c). De procedure bereken-gewogen-gemiddelde geeft een lijst terug met daarin de gewogen gemiddeldes van de punten van een student. Het gewogen gemiddelde wordt berekend aan de hand van het aantal studiepunten van dat vak. Het resultaat van deze procedure op het voorbeeld uit onderdeel a) is dan((jan 12.6) (an 15.2))waarbij de punten voor Structuur I meetellen voor 9 studiepunten, deze voor Lineaire Algebra voor 3 studiepunten en deze voor het examen Grondslagen I voor 6 studiepunten.

Vraag 2 bomen (4 punten) Onderstaande figuur geeft een mijn van een ontginningsmaatschappij weer. Een mijn, of mijnschacht (deelmijn), is geopend in een bepaald jaar, beschrijft de ontgonnen ertsen en kan in een eindig aantal mijnschachten vertakken. Deze schachten hebben dezelfde structuur als de hoofdmijn en kunnen dus terug verder vertakken. (define mijn '(1987 ((goud 12)(zilver 10)) (1990 ((koper 99)) (1999 ((ijzer 57)))) (1991 ((goud 11)(zilver 23))) (1993 ((goud 1)) (1994 ((goud 34)(zilver 23)))))) De ontgonnen ertsen worden opgeslagen als een lijst van tupels. Zo vertelt de lijst '((goud 12)(zilver 10)) ons dat er 12 ton goud en 10 ton zilver ontgonnen is. Merk op dat de deelschachten altijd achter de lijst met ontgonnen ertsen staan. Let op: je oplossingen voor de vragen hieronder moeten algemeen genoeg zijn om voor 'elke mijn' te werken. Dus ook voor mijnen met meer of minder schachten en/of ontgonnen grondstoffen. Hint: Introduceer abstracties voor de boom die de mijn voorstelt! a) Schrijf een procedure (geef-ton-sinds mijn jaar) die voor een mijn berekent hoeveel ton grondstof er reeds naar boven gehaald is sinds een bepaald jaar. Bijvoorbeeld(geef-tonsinds mijn 1987) zal de som maken van alle grondstoffen en (geef-ton-sinds mijn 1991) zal 149 teruggeven. b) Schrijf een procedure (geef-kostprijs-ontginning mijn) die voor een mijn berekent hoeveel het gekost heeft om de beschreven grondstoffen naar de oppervlakte te brengen. In de ontginningsbranche gaat men er van uit dat het naar bovenhalen van 1 ton erts 1000 euro kost voor erts dat net onder de grond zit (hoogste niveau). Gaat men echter in diepere schachten ontginnen, dan stijgt de kost van het opgraven van erts met 10% per niveau dat men dieper moet graven.

Vraag 3 destructieve operaties (3 punten) Tijdens de eindejaarsperiode hebben we een circulaire slinger gebruikt als versiering. Deze slinger bestaat uit een willekeurige opeenvolging van sneeuwmannen en sterren. Nu de feesten voorbij zijn willen we onze slinger terug opbergen. Om onze slinger op te bergen hebben we een doos met twee vakjes: één voor alle sneeuwmannen en één voor alle sterren. Deze lege doos is als volgt gedefinieerd: (define doos (cons '() '())) Schrijf een destructieve procedure (berg-op! slinger doos) die de circulaire slinger opbreekt in twee niet circulaire slingers (lijsten) van één type versiering, en die twee lijsten opbergt in doos. Merk op dat in deze procedure GEEN nieuwe cons-cellen mogen aangemaakt worden!

Vraag 4 streams (4 punten) Voor de vraag over stromen, willen we 'een bericht' versturen van punt A naar punt B. Het draadloze protocol laat enkel pakketjes van lengte 6 toe. Om dit te verwezenlijken gebruiken we 2 bestaande dozen: verstuur-tekst verwacht een oneindige stroom van deelstromen, waarbij elke deelstroom juist 6 karakters bevat, en verstuurt deze. ontvang-tekst ontvangt een oneindige stroom van deelstromen (van 6 karakters lang) en geeft een oneindige stroom van deelstromen terug, waarbij de deelstromen opnieuw verstaanbare tekst voorstellen. Voor de onderstaande vragen kan je gebruikmaken van de volgende stream-operatoren: verstuur-tekst, ontvang-tekst, cons-stream, head, tail, empty-stream?, appendstreams, accumulate, flatten, filter, map-stream, flatmap en the-empty-stream. a) Schrijf eerst een stroom operator split-n die een gegeven stroom omvormt naar een stroom van deelstromen van gegeven lengte n. b) Het origineel bericht is een stroom van woorden, elk woord is een stroom van karakters. Om het bericht te kunnen versturen moet het omgezet worden naar een stroom van deelstromen van lengte 6, namelijk de originele tekst en blanco tekens om scheiding van woorden te kennen. Schrijf een operator voor deze omvorming. c) Schrijf nu een nieuwe stroomoperator split-at die een gegeven stroom omvormt naar een stroom van deelstromen. In tegenstelling tot split-n splitst split-at niet op vaste intervallen, maar wanneer een bepaald karakter voorkomt. d) Gebruik nu je split-at procedure om de uitvoer van 'ontvang-tekst', een oneindige stroom van deelstromen van 6 karakters (met blanco karakters), om te vormen naar een oneindige stroom van deelstromen (variabele lengte) die opnieuw woorden voorstellen.

Vraag 5 objecten (4 punten) a) Ontwerp een ADT ratelhek (draaihek dat slechts in één richting draait) dat je als object implementeert. Een ratelhek onthoudt het aantal personen dat gepasseerd is. Een ratelhek moet minstens deze twee boodschappen begrijpen: De boodschap read geeft het aantal personen terug dat door het ratelhek gepasseerd is. De boodschap pass! laat een persoon door het ratelhek passeren. b) Ontwerp een ADT kabine dat je als object implementeert. Een kabine heeft een appart ratelhek voor de inkom en voor de uitgang en een maximum capaciteit. Een kabine moet minstens de volgende boodschappen begrijpen: De boodschap full? gaat na of de kabine maximaal bezet is. De boodschap empty? gaat na of de kabine leeg is. De boodschap in laat een persoon de kabine binnengaan. Dit gebeurt steeds via het ratelhek aan de ingang. De boodschap out laat een persoon de kabine verlaten via het ratelhek aan de uitgang. c) Ontwerp ook een ADT perron dat je als object implementeert. Een perron onthoudt het aantal mensen dat op het perron staat en begrijpt minstens de volgende boodschappen: De boodschap empty? gaat na of het perron leeg is. De boodschap enter n laat een groepje van n personen het perron betreden. De boodschap leave n laat een groepje van n personen het perron verlaten. d) Ontwerp een ADT skilift dat je als object implementeert. Een skilift heeft een perron aan de voet van de berg en een perron op de top ervan en er is 1 kabine. Een skilift moet minstens de volgende boodschappen begrijpen: De boodschap stop laat de kabine afwisselend onderaan of bovenaan de skilift stoppen. Alle personen zullen op dat moment de kabine verlaten waarna zoveel mogelijk mensen van het perron in de kabine stappen. e) Toon door middel van een transcript hoe een skilift met een kabine van capaciteit 4 wordt aangemaakt. Simuleer het volgende scenario: Op het perron onderaan de berg staan 7 skiërs ongeduldig te wachten. Op het perron aan de top van de berg staan 3 vermoeide snowboarders te wachten om met de skilift naar beneden te gaan. Laat de kabine achtereenvolgens aan het onderste en bovenste perron stoppen tot alle personen op hun bestemming zijn. Controleer de aantallen die in de ratelhekken zijn opgeslagen.