Merk: Olav Lysne og Anne Salvesen

Like dokumenter
Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

UNIVERSITETET I OSLO

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Løsningsforslag og sensorveiledning til eksamen i. IN110 våren Generelt:

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

A 1 B 1 D 1 H 1 H 2 D 2 B 2 E 1 E 2 I 1 I 2...

Del 1(8%) 5 h. Del 2(42%)

København 20 Stockholm

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

Oppgave 1. Sekvenser (20%)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Informasjon Prøveeksamen i IN1000 høsten 2018

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

UNIVERSITETET I OSLO

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Løsningsforslag til INF110 h2001

UNIVERSITETET I OSLO

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Oppgave 1 JK-flip-flop (Total vekt 20%)

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN I FAG ALGORITMER OG DATASTRUKTURER

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Norsk informatikkolympiade runde

UNIVERSITETET I OSLO

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Med Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

Norsk informatikkolympiade runde

LØSNINGSFORSLAG EKSAMEN V06, MA0301

Algoritmer og datastrukturer Eksamen 22. februar 2011

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

1-b. integer array frd; begin. integer x; for x:= 1step 1 until N do. end; 1-c

Løsnings forslag i java In115, Våren 1996

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

Løsnings forslag i java In115, Våren 1998

UNIVERSITETET I OSLO

2 Om statiske variable/konstanter og statiske metoder.

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2015

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: Tidforeksamen: Oppgavesettet erpå8sider. Vedlegg: Tillatte hjelpemidler: IN110Algoritmer ogdatastrukturer 18. mai1992 9.0015.00 Ingen Alle trykte og skrevne Kontroller atoppgavesetteterkomplett før dubegynneråbesvare spørsmålene. Merk: Oppgavene kannaturligløsesidenrekkefølgedestårmendeterikkenoeiveienforå hoppe fram og tilbakebare man har lest de foregående oppgavene nøye. Programmer skalskrivesentenisimulaellerpascal. Oppgavene erformulert utfraatprogrammene skal skrives isimula.desomvilbrukepascal skal erstatte deangitteklassedeklarasjoner medtilsvarenderecord-deklarasjoner samt gjøre andreopplagte småjusteringer. Du behøver ikke gi noen fullstendig dokumentasjon av programmene men du skal skrive noen fålinjersom gir leserennøkkelentilforståelse avprogrammet. Dukan anta atleseren kjenner problemstillingen i oppgaven meget godt. Alle stederderdeterspørsmål etteretprogram (ellerenprosedyre elleralgoritme) skal man skrive dette helt ut og ikke bare henvise til liknende programmer i f.eks. boka. Lykke til! Olav Lysne og Anne Salvesen (Fortsettes side2.)

Eksamen i IN 11018.mai 1992 Side 2 1 B-trær 10% Vi har følgende B-tre: 12 23 Z ZZ Z ZZ Z Z 1 3 9 10 15 17 29 30 1-a Vis hvordandettetreetblirseendeutetteratmanharsattinntallet2. 1-b Hvordan vil treet se ut dersom vi i stedet for å sette inn tallet 2 fjerner tallet 29. 2 Spill 45% Vi skal i denne oppgaven ta for oss et enkelt spillog lage noen prosedyrer for å analysere dette. Selvespillet ermentforénperson ogforegår påetbrettsomhar et antall feltersom ligger etter hverandre. Disse feltene er nummerert 1; 2::::; lengde. Idet spillet begynner er detplassert 2nbrikkernhviteognsvartepåbrettetslikatdehviteliggerpådenfeltene lengst til venstreogdesvarteligger pådenfeltenelengst tilhøyre.detskal være nøyaktig ett ledigfeltnemligdetmidterstenummerertn+1. Viharderfor lengde =2n+1.For lengde=11vilsituasjonen vedstartenavspilletværefølgende: 1 2 3 4 5 6 7 8 9 10 11 nnnnn ~~~~~ (Fortsettesside3.)

Eksamen i IN 11018.mai 1992 Side 3 Spilletgårutpååfådehviteogdesvarte brikkenetilåbytteplass slikatdesvarte brikkeneliggerpåvenstre sideogdehvitebrikkeneligger påhøyreside.brikkeneskal yttesenogenetterfølgende regler Brikkenekanikkeytteslenger enntofeltavgangen ogdekanbareyttestildet tilenhvertidledigefeltet. Hvitebrikkerkan kun yttesmothøyre ogsorte brikkerkan kun yttesmotvenstre. Etter ett ytt er det altså re mulige situasjoner: 1 2 3 4 5 6 7 8 9 10 11 nnnnn ~~~~ ~ etteryttfra7til6 nnnnn ~~ ~~~ etteryttfra8til6 nnnn n~~~~~ etteryttfra5til6 nnn nn~~~~~ etteryttfra4til6 Et brett som inneholder en spillsituasjon kan representeres med en character array CHARACTER ARRAY brett(1:lengde); Celleneiarrayeninneholder enavtegnene H S og L for henholdsvis hvitbrikkesvart brikkeogledig. 2-a Anta at du har følgende klasse-deklarasjon som kan benyttes til å bygge en liste av mulige yttispillet: (Fortsettesside4.)

Eksamen i IN 11018.mai 1992 Side 4 CLASS flytt; BEGIN INTEGER fra til; ref(flytt) neste; END; Detovariablene fra og til skal inneholde hvor i arrayen brett en brikkeytteshenholdsvisfraogtil. Skrivprosedyren ref(flytt) PROCEDURE finnflytt(brett); CHARACTER ARRAY brett; som tar en spillsituasjon i arrayen brettsom parameter og som returnerer med en peker tilenlisteavflytt-objekter somangir hvilkeyttdetermuligågjøre fradengitte situasjonen. Du kan anta at arrayen brettgår fra 1 til lengde. 2-b La oss nå tenke oss at vi ønsker å studere alle de mulige forløpene av spillet.vi kunne da tenke ossdisselagt utsomettrehvorrotnoden inneholder enrepresentasjon avbrettetslik det er ved begynnelsen av spillet.under rotnoden er det re sub-noder som angir situasjonene etter ett ytt.fra hver av disse re nodene går det maksimalt 4 kanter(muligens færre) tilnoder somangirsituasjonen etter2yttosv.dermedvilmankunnennehvert enkelt spillforløp som en sti fra rotnoden og nedover i treet. Dersomlengdeerrimeligstor vildettreetsomerskissertoverbliforstorttilåkunnelagres eksplisitt.istedetønsker viossenprosedyre someristand tilågiossden informasjonen viønsker fradettetreetutenålagredetisinhelhet. Antaatduhar CHARACTER ARRAY brett(1:lengde); somenglobalt deklarertdatastruktur ogatduharprosedyren PROCEDURE bytt(ij); INTEGER ij; (Fortsettesside5.)

Eksamen i IN 11018.mai 1992 Side 5 sombytterominnholdet iposisjon i og j iarrayenbrett.lagprosedyren PROCEDURE generer(i); INTEGER i; som skriver ut alle mulige situasjoner man kan ha etter nøyaktig i ytt. Du skal anta at ved kallet av prosedyren inneholder brettstarttilstanden i spillet.dersom det er ere spillforløpsomledertilsammesituasjon skal denne situasjonen skrivesuténgang forhvert forløp.hvertprosedyrekallskalikkelagreanneninformasjon omtidligerespilltilstanderenn detsom til enhvertidliggeriarrayenbrett.dukan benytte degavprosedyren finnflytt fra oppgave2-aselvomduikkeharprogrammert denne. 2-c Siden dettilenhvertidvilvære kunettfeltdetermuligåyttetilviletspill(ensekvens avytt)kunne beskrivessomensekvensavtallmellom1oglengde.hverttallidenne sekvensen angir hvilket felt det ble yttet fra. Vi skal i denne oppgaven lage en prosedyre som nner og skriver ut et spesielt spillforløp. Anta at vi har en spesiell spillsituasjon og at vi lurer på om det er mulig å komme fram tildennesituasjonen medmindreennktrekk.lagenprosedyre PROCEDURE finnspill(situasjonk); CHARACTER ARRAY situasjon; INTEGER k; somskriverutensekvensavtrekksom er kortereennksom leder frammot den spillsituasjonen som er beskrevet isituasjonogsom er slikatdetikkeernoen korteresekvens somogså lederframtildensammesituasjonen. Dersom ingen sliksekvensnnes skalingen ting skrives ut.sekvensen av trekk skal skrives ut som en sekvens av tall som angir hvilke feltdetbleyttetfra. Du skal anta at denne prosedyren skal kjøres på en maskin med lite internminneslik at det ikke er plass til å lagre alle spillsituasjonene etter k trekk på en gang. Du skal derfor ikke bruke eneksplisitt kø. Hint: Modiser prosedyrengenererfraoppgave2-bslikatdenbrukerenglobal hjelpearray tilå holderedepåhvilketrekksomleder fremmotdensituasjonen som til enhvertidbetraktes. Benytt denne prosedyrenisøket. (Fortsettesside6.)

Eksamen i IN 11018.mai 1992 Side 6 2-d Kunne man løst oppgaven over uten å benytte den hjelpearrayen som omtales i hintet? Forklar! 3 Grafer 45% Vi skal fremdeles holde oss til det spillet som ble beskrevet i den forrige oppgaven (les evt. framtiloppgave2-a). Nåskalviimidlertidtenke ossatviharetbrettsomersåliteat allespillsituasjonene kanlagres eksplisitt. Anta atviharklassedeklarasjonen CLASS situasjon; BEGIN CHARACTER ARRAY brett(1:lengde); REF(situasjon) ARRAY nestesituasjon(1:4); END; somkanbenyttestilålagre allespillsituasjonene iengraf. Arrayennestesituasjonskal inneholde pekeretildenoder somangir spillsituasjonene etterettyttfradennesituasjonen. Dersom en node har færre enn re etterfølgersituasjoner skal dette markeres ved at noen avpekerene er NONE. 3-a Skriv enprosedyre PROCEDURE generer(n); REF(situasjon) n; somoppretterengrafforallespillsituasjoner somkan forekomme frasituasjonen inoden n. En node igrafenskal være entydigidentisertmedenspillsituasjon slikatingensituasjon skal lagres to ganger. Du kan anta at arrayen bretttil å begynne med inneholder den samme spillsituasjonen som noden n inneholder. Du kan også benytte funksjonsprosedyren (Fortsettes side7.)

Eksamen i IN 11018.mai 1992 Side 7 REF(situasjon) finnode(c); CHARACTER ARRAY c; somreturnerermednonehvisdetikkennesennode medspillsituasjon c igrafen og som returnerer med en peker til denne noden hvis den nnes.du skal ikke programmere finnode. 3-b Har du et forslag til hvordan nodene i grafen kan representeres for å lette jobben for finnode?gjørenkortvurderingavetparmuligemetoder. 3-c I den grafen vi laget i oppgave 3-a har vi lagret informasjon om alle mulige spillforløp. Vi sier at den noden i grafen som tilsvarer vinnersituasjonen er den som inneholder det brettet hvor alle de hvite og de svarte brikkene har byttet plass. Vi sier at en node er unødvendig dersom den ikke er med i noen vei som leder fram til vinnersituasjonen. Altså er en node i grafen unødvendighvisdenikketilsvarervinnersituasjonen ogenten 1. Den ikkeharnoen utkanter eller 2. Den kun har utkanter til unødvendige noder. Lag en prosedyre BOOLEAN PROCEDURE strip(n); ref(node) n; Som fjerner alle unødvendige noder fra grafen med startsituasjon n. Hvert prosedyrekall skal returnere med FALSE dersom parameteren n viste seg å peke på en unødvendig node og TRUE hvis denpekerpåennødvendig node. 3-d Kan Pues Fra oppgave 3-ckkviengrafsom representerer allevinnendesekvenser avtrekkispillet. Viskalidenneoppgaven tautgangspunkt idennestrippede grafen. Tilnåharvisettpå (Fortsettesside8.)

Eksamen i IN 11018.mai 1992 Side 8 detspilletsomstartermedalledehvitebrikkenetilvenstre ogalledesvartebrikkenetil høyre.dersomvisnurallekanteneigrafenvårvilvifåengrafmedallevinnende sekvenser fordetmotsatte spillethvorvistartermeddehvitebrikkenepåhøyresideogdesvarte påvenstre.forklarhvorfor densnudde grafentilsvarer detmotsatte spillet. Programmer prosedyren PROCEDURE snu(n); REF(situasjon) n; somsnurallekanteneigrafenslikatdegårdenandreveien. Av plasshensyn skal du ikke opprette noen nye nodermen du kan utvide klassen situasjon med en variabel merket. (Slutt på oppgavesettet)