16
INF2810 eksamen 2017 1/16 Bakgrunn Eksamen i INF2810: Mandag, 29. mai 2017, 14:30–18:30. Ingen hjelpemidler. I dette oppgavesettet skal du besvare to av oppgavene i oppgavesettet med digital håndtegning (oppgave 2.2 og 4.1). Du svarer på disse to oppgavene på skisseark du får utdelt. Det er anledning til å bruke flere ark per oppgave. Se instruksjonsark på pult. Det er IKKE anledning til å bruke digital håndtegning på andre oppgaver enn oppgave 2.2 og 4.1. Det blir ikke gitt ekstratid for å fylle ut informasjonsboksene (engangskoder, kand.nr. o.l.) på skisseark. Vi anbefaler å lese gjennom hele oppgaveteksten før du begynner. Hvis du føler du mangler informasjon for å løse en oppgave, gjør dine egne antakelser og redegjør for dem. Alle steder der det bes om kode forventes i utgangspunktet Scheme (i henhold til R5RS slik vi har brukt hele semesteret), men dersom du av en eller annen grunn står fast noe sted og for eksempel ikke husker spesifikk Scheme-syntaks eller prosedyrenavn er det bedre om du skriver pseudokode med kommentarer enn ingenting. 2.1 Listestruktur Gitt definisjonene av z1 og z2, vis verdiene de er bundet til, lik slik de ville blitt vist på REPL'et. Skriv ditt svar her... Maks poeng: 3

Bakgrunn - UiO

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bakgrunn - UiO

INF2810eksamen2017

1/16

Bakgrunn

EksameniINF2810:Mandag,29.mai2017,14:30–18:30.Ingenhjelpemidler.Idetteoppgavesettetskaldubesvaretoavoppgaveneioppgavesettetmeddigitalhåndtegning(oppgave2.2og4.1).Dusvarerpådissetooppgavenepåskissearkdufårutdelt.Deteranledningtilåbrukeflerearkperoppgave.Seinstruksjonsarkpåpult.DeterIKKEanledningtilåbrukedigitalhåndtegningpåandreoppgaverennoppgave2.2og4.1.Detblirikkegittekstratidforåfylleutinformasjonsboksene(engangskoder,kand.nr.o.l.)påskisseark.Vianbefalerålesegjennomheleoppgavetekstenførdubegynner.Hvisdufølerdumanglerinformasjonforåløseenoppgave,gjørdineegneantakelserogredegjørfordem.AllestederderdetbesomkodeforventesiutgangspunktetScheme(ihenholdtilR5RSslikviharbrukthelesemesteret),mendersomduavenellerannengrunnstårfastnoestedogforeksempelikkehuskerspesifikkScheme-syntaksellerprosedyrenavnerdetbedreomduskriverpseudokodemedkommentarerenningenting.

2.1 Listestruktur

Gittdefinisjoneneavz1ogz2,visverdienedeerbundettil,likslikdevilleblittvistpåREPL'et.

Skrivdittsvarher...

Makspoeng:3

Page 2: Bakgrunn - UiO

INF2810eksamen2017

2/16

2.2 Boks-og-peker–diagrammer

Gittdefinisjoneneavz1ogz2over(sammesompåforrigeoppgave),tegnboks-og-peker–diagrammer(påegetskisseark)somviserlistestruktureneforhveravdem.Tegnogsåetboks-og-peker-diagramtilforz2somviserhvastrukturenbliretterdetfølgendekalletpåset-car!.

Seinstruksjonforutfyllingavskissearkpåpult.

Makspoeng:8

Page 3: Bakgrunn - UiO

INF2810eksamen2017

3/16

2.3 Listerekursjon

Definerenrekursivprosedyredeep-countsomtarsomargumenteretsymbolsymogenpotensieltnøstetlistelst,ogreturnererantallforekomsteravsymboletilisten.Kalleksempel:

Skrivdittsvarher...

Makspoeng:6

1

Page 4: Bakgrunn - UiO

INF2810eksamen2017

4/16

2.4 Prosess

Hvaslagstypeprosessvildinimplementasjonenavprosedyrendeep-countgenerereforkalleksemplet?

Skrivdittsvarher...

Words:0

Makspoeng:3

Introduksjon:transform-if

Idenesteoppgaveneskalduskrivenoenforskjelligeversjoneravenenkelprosedyresomviskalkalletransform-if.Argumenteneskalværeenprosedyretest,enprosedyretrans,ogenlisteseq.Returverdienskalværeenlistedertransharblittanvendtpåhvertelementiargument-listaseqsomreturnerersantfortest,ellerersammeelementsomiseqdersomtestreturnererusant.Kalleksempler:

Page 5: Bakgrunn - UiO

INF2810eksamen2017

5/16

3.1 Rekursivtransform-if

Skrivenrentfunksjonellversjonavtransform-ifbasertpåvanligrekursjon(altsåikkehalerekursjon).Skrivdittsvarher...

Makspoeng:3

1

Page 6: Bakgrunn - UiO

INF2810eksamen2017

6/16

3.2 Sekvensbaserttransform-if

Skrivenrentfunksjonellversjonavtransform-ifbasertpåhøyereordenssekvensoperasjoner(detergreitåbenyttesegavinnebygdeprosedyrerher).Skrivdittsvarher...

Makspoeng:4

1

Page 7: Bakgrunn - UiO

INF2810eksamen2017

7/16

3.3 Halerekursivtransform-if

Skrivenrentfunksjonellversjonavtransform-ifbasertpåhalerekursjon.Skrivdittsvarher...

Makspoeng:5

1

Page 8: Bakgrunn - UiO

INF2810eksamen2017

8/16

3.4 Destruktivtransform-if

Skrivenikke-funksjonellversjontransform-if!somdestruktivtmodifisererlisteargumentetsitt.Skrivdittsvarher...

Makspoeng:4

1

Page 9: Bakgrunn - UiO

INF2810eksamen2017

9/16

3.5 Strømbaserttransform-if

Skrivenstrømversjonavløsningendinideloppgave3.1,altsådenfunksjonelleversjonenavtransform-ifsomvarbasertpåvanligrekursjon.Strømversjonenskaltaenstrømavelementersomargumentogreturnereennystrømavdemuligenstransformerteelementene.Dukanherantaatgrensesnittetforstrømmerslikviharbruktdetikursetertilgjengelig,dvs.cons-stream,stream-carogstream-cdr,the-empty-streamogstream-null?.Skrivdittsvarher...

Makspoeng:4

1

Page 11: Bakgrunn - UiO

INF2810eksamen2017

11/16

4.1 Omgivelsesdiagram

Herskalvijobbemedomgivelsesmodellenforevaluering.Tegnetomgivelsesdiagram(påegetskisseark)somviserallerelevanterammerogbindingeretteratalleuttrykkeneifølgendesekvensharblittevaluert.

Seinstruksjonforutfyllingavskissearkpåpult.

Makspoeng:12

Page 12: Bakgrunn - UiO

INF2810eksamen2017

12/16

5.1 Prosedyrebasertepar

AltiSchemekanreduserestillambdakalkyleogprosedyrer.Skrivenimplementasjonavcons,carogcdrsomerprosedyrebasert,dvs.representererselvecons-paretsomenprosedyre.Skrivdittsvarher...

Makspoeng:8

5.2 Debugging

Herskalduskriveenprosedyredebugsomlarossfåskrevetutargumentenesomengittprosedyrekallespå.Dennefunksjonalitetenskalvikunneskruavogpå,ogviskalkunnefølgemedpåvilkårligmangeprosedyrersamtidig.Sekalleksemplerunder.Prosedyrendebugskaltasomargumenterenbeskjedactionogenprosedyreproc.Argumentetactionskalentenværebeskjeden'traceeller'untrace.Dersombeskjedener'tracesåreturneresennyprosedyresomskriverutargumentlistenførdenopprinneligeprosedyrenkalles.Dersombeskjedener'untracereturneresdenopprinneligeprosedyren.Huskatdeninnebygdeprosedyrendisplaylardegskriveut.Prosedyrennewlineskriverutlinjeskift.Dukanogsåantaatvihartilgjengeliggrensesnittetforåjobbemedtabellersomvihargjennomgåttpåforelesningogogsåbrukteienavobligene.Detteinkluderermake-tablesomreturnererenny,tomtabell,insert!somtarentabell,ennøkkelogenverdiogleggertilitabellen,oglookupsomtarennøkkelogentabellogreturnererverdien(dersomoppslagetfinnes).Kalleksempler:

1

Page 13: Bakgrunn - UiO

INF2810eksamen2017

13/16

Skrivdittsvarher...

Makspoeng:15

1

Page 14: Bakgrunn - UiO

INF2810eksamen2017

14/16

6.1 Strømmer

Denneoppgavenberomsvarpåflerespørsmål,passpåatdusvarerpåalt.Viantarherathelegrensesnittetforåjobbemedstrømmerslikviharbruktdetikurseterforhåndsdefinertogtilgjengelig.Itilleggdefinerervienprosedyreadd-streamssamttoglobalevariablersomfølger:

Forklarmedetparsetningerhvordanadd-streamsfungereroghvorfordetkanværeveldefinertåhaenrekursivprosedyreutenbasistilfelle.Sesånøyepåuttrykkenesombindestilhhv.onesogintegers.Hvablirresultatetnårvievaluereruttrykketsombindestilones?Hvablirresultatetnårvievaluereruttrykketsombindestilintegers?Tenktdegomtoganger,ogbegrunnkortbeggesvarenedine.Hvavilleblittkonsekvensenomvibyttetutcons-streammedconsidefinisjonenavones?

Skrivdittsvarher...

Words:0

Makspoeng:7