• No results found

Structuur van Computerprogrammas 1 2010 2011

N/A
N/A
Protected

Academic year: 2021

Share "Structuur van Computerprogrammas 1 2010 2011"

Copied!
5
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

1

S

TRUCTUUR VAN

C

OMPUTERPROGRAMMA

S

I

Examen Eerste Zit – 20 januari 2011

Deel 1

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. Antwoorden in potlood worden niet aanvaard!

Veel succes!

Vraag 1 recursie/iteratie (4 punten)

a) De punten van het schriftelijk en mondeling examen van het vak Structuur van

Computerprogramma’s I worden bijgehouden in twee lijsten. Elke lijst bevat per student een deellijstje met de naam van de student en het resultaat. Beschouw als voorbeeld de volgende lijstjes waarbij de eerste lijst de punten voor het schriftelijk examen voorstelt en de tweede lijst de punten voor het mondeling examen (het streepje na bert in deze lijst betekent een afwezigheid).

‘((an 12) (bert 8) (piet 17) (els 15) (jan 6)) ‘((an 14) (bert -) (piet 12) (els 9) (jan 10))

Er wordt gevraagd om het gemiddelde te berekenen van de punten voor elke student. Indien een student niet aanwezig was op één van beide examen dan wordt dit als een afwezig beschouwd voor het volledige examen. Je mag ervan uitgaan dat elke student in beide lijsten voorkomt en dat de volgorde van voorkomen voor beide lijsten identiek is.

Het resultaat van de oproep van een dergelijke procedure (gemiddeldepunten lijst1 lijst2) voor bovenstaande voorbeelden ziet er als volgt uit:

((an 13) (bert -) (piet 14.5) (els 12) (jan 8))

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 (combineerpunten lijst1 lijst2 comb) die ervoor zorgt dat

de resultaten voor iedere persoon uit de inputlijsten gecombineerd worden aan de hand van de procedure comb.

d) Herschrijf de procedure gemiddeldepunten uit deel a) aan de hand van de procedure

combineerpunten uit c).

e) Gebruik de procedure combineerpunten uit c) om een procedure te schrijven die de resultaten van elke persoon uit beide lijsten combineert in 1 lijstje. Gegeven de twee lijsten uit vraag a) is het resultaat van deze procedure als volgt:

((an (12 14)) (bert (8 -)) (piet (17 12)) (els (15 9)) (jan (6 10)))

Vraag 2 Destructieve operatoren

(3 punten)

Jullie beschikken over twee slingers: één met allemaal sneeuwmannetjes en één met allemaal sterretjes. Deze twee slingers moeten jullie in elkaar knutselen door een methode knutsel-slinger te schrijven die gegeven twee slingers (lijsten) en een n-waarde de slingers als volgt aanpast: één sneeuwmannetje gevolgd door n sterretjes. Wanneer één van de twee slingers op is dan mogen jullie gewoon de rest van de andere slinger verder gebruiken en vervolgens binden jullie het einde van de slinger aan het begin zodat dat we een ronde slinger verkrijgen. Jullie moeten dit doen op destructieve wijze dus ZONDER nieuwe cons-cellen te maken.

(2)

2

Sneeuwman-slinger 

Ster-slinger 

Resultaat (knutsel-slinger sneeuwman-slinger ster-slinger 2)

Vraag 3 Bomen (5 punten)

Onderstaande boomstructuur geeft een stukje weer van de stockvoorraad van een nachtwinkel. Deze voorraad kan worden onderverdeeld in drank, snoep en hygiëne. De rubriek drank kan op zijn beurt onderverdeeld worden in Cola, Fanta, etc. Elke van deze rubrieken kan nog verder opgedeeld worden in deelrubrieken en tenslotte tot producten. Elk product wordt voorgesteld door een triple dat de naam van het product, het aantal in voorraad en de prijs per eenheid bevat.

(define nachtwinkel ‘(nachtwinkel (drank ((Fanta 10 1.3))

(Cola ((Coca-Cola 15 1.3)) ((Cola-light 5 1.3)) ((Cola-zero 5 1.3)))

((bier 60 1.5)) ((wijn 8 6))) (snoep (chips ((zout 6 1)) ((paprika 10 1))) ((borrelnootjes 4 2)) (ijs ((schepijs 5 4)) ((frisko 13 2.5)))) (hygiëne ((pampers 3 22)) ((tandpasta 6 2)) ((douchegel 6 3)))))

Let op, je oplossingen voor de vragen hieronder moeten algemeen zijn; dus ze moeten kunnen werken op een boom waarvan de diepte en breedte niet vastligt.

(3)

3

a) Schrijf een procedure (bereken-inventariswaarde winkel rubriek) die voor een gegeven rubriek de totale inventariswaarde berekent. Bijvoorbeeld:

(bereken-inventariswaarde nachtwinkel ‘Cola) => 32.5

b) Schrijf een procedure (geef-producten winkel waarde) die alle producten teruggeeft die goedkoper zijn dan een gegeven waarde. Bijvoorbeeld:

(geef-producten nachtwinkel 1.5)

=> (Fanta Coca-Cola Cola-light Cola-zero zout paprika)

c) Schrijf een procedure (geef-rubrieken winkel niveau) die alle rubrieken en producten teruggeeft op een bepaald niveau. Bijvoorbeeld:

(geef-rubrieken nachtwinkel 3)

=> ((Fanta 10 1.3) Cola (bier 60 1.5) (wijn 8 6) chips (borrelnootjes 4 2) ijs (pampers 3 22) (tandpasta 6 2) (douchegel 6 3))

(4)

4 geef-dagcijfers

S

TRUCTUUR VAN

C

OMPUTERPROGRAMMA

S

I

Examen Eerste Zit – 20 januari 2011

Deel 2

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. Antwoorden in potlood worden niet aanvaard!

Veel succes!

Vraag 4 Objecten

(4 punten)

a) Ontwerp een ADT, dat je als object implementeert, dat een lokaal voorstelt. Een lokaal heeft een maximum capaciteit, een bezetting en een examencapaciteit die een vierde van de

maximum capaciteit bedraagt. Verder begrijpt dit ADT de volgende boodschappen: • De boodschap binnenkomen zorgt er voor dat een aantal studenten het lokaal

binnenkomt. Het aantal studenten dat binnenkomt mag de maximum capaciteit natuurlijk niet overschrijden.

• De boodschap buitengaan zorgt er voor dat een aantal studenten het lokaal verlaat. b) Ontwerp ook een ADT examen, dat je als object implementeert. Een examen heeft een aantal

studenten en bepaalde lokalen. Dit ADT begrijpt de volgende boodschappen:

• De boodschap verdeel zorgt er voor dat een aantal studenten verdeeld worden over de lokalen. Zorg er voor dat de bezetting van de lokalen optimaal is; dat wil zeggen dat er zo weinig mogelijk lokalen gebruikt worden.

• De boodschap hergroepeer zorgt er voor dat indien de bezetting in één of meerdere lokalen verminderd is, de studenten uit deze lokalen indien mogelijk samengevoegd worden.

c) Aan het examen Structuur van Computerprogramma’s I nemen 75 studenten deel. Het lokalenbeheer van de VUB heeft voor dit vak de lokalen D0.03 en D0.07 toegekend die respectievelijk een maximum capaciteit van 200 en 120 zitplaatsen hebben.

Laat zien hoe dit examen wordt aangemaakt en hoe de studenten optimaal over de toegekende lokalen verdeeld worden. Tijdens de pauze merken de assistenten van het vak op dat in lokaal D0.03 15 studenten reeds vertrokken zijn en in lokaal D0.07 zijn er reeds 13 studenten die niet langer aan het examen deelnemen. Toon eveneens aan wat de bezetting van de lokalen is na de pauze.

Vraag 5 Streams (4 punten)

De NMBS wil de tevredenheid van zijn treinreizigers in kaart brengen, hiervoor hebben ze een systeem ontwikkeld waarbij de treinreizigers dagelijks hun tevredenheid (een cijfer tussen 0 en 10) kunnen invullen. Deze dagelijkse tevredenheidscijfers kunnen worden voorgesteld als een oneindige stream van getallen met een # als scheidingsteken tussen de dagen (zie figuur voor een voorbeeldstream). Van deze tevredenheidsgetallen wil de NMBS per dag het minimum, maximum en gemiddelde weten.

a) Schrijf een procedure geef-dagcijfers die gegeven een oneindige stream van

tevredenheidscijfers een oneindige stream van streams terug geeft door de opeenvolgende dagcijfers samen te nemen. (De dagen worden gescheiden door een #).

(5)

5

bereken-resultaten

b) Schrijf voor de NMBS een procedure bereken-resultaten die gegeven een oneindige stream van tevredenheidscijfers een oneindige stream van streams terug geeft. Deze resultaat stream zal per dag een stream bevatten met 3 elementen (het minimum, maximum en gemiddelde).

Deze operatoren staan alvast tot je beschikking: streamfilter, map-stream, accumulate, append-stream, flatten, accumulate-n, cons-stream.

Referenties

GERELATEERDE DOCUMENTEN

We hebben ook hierbij de tijd gemeten waarin de enen slinger zijn energie volledig heeft doorgegeven aan de andere en het aantal trillingen geteld in diezelfde tijd.. Als je de X

11 † - Voorbeelden van juiste argumenten voor de kenmerken van het locatietype zijn: 1.. • De locatie is vooral goed bereikbaar per auto (en niet per

Teams kunnen warme haarden van inspiratie zijn maar net zo kille plaatsen worden waar men elkaar niet verstaat.. Onze ervaring is als die van onze bijbelse voorgangers: samen kan

Voor zowel de zelfhechtende cementering van de zirkonium kroon als de esthetische hechting van de glaskeramische veneer werd 3M ™  RelyX ™ Universal Resin Cement gebruikt..

Het poststuk bevat onder andere Bijlage 1 met getekende machtigingsformulieren door 30 personen, waarin zij de twee indieners machtigen om namens hen een bezwaar- of beroepschrift

De gemeenten verplichten zich ten opzichte van Alescon en elkaar informatie en bijstand te verlenen tot het kunnen afwikkelen van de liquidatie van Alescon door inzet van

Spreken over stoffen betekent al zich distantiëren van deze wereld, want we kennen stoffen toe aan voorwerpen omdat stoffen niet kunnen bestaan zoals voorwerpen bestaan: we

Hierdoor heeft het voor de managers geen zin de prestaties met medewerkers te bespreken omdat zij op dat moment weer tewerk gesteld zijn in andere samenstellingen in andere