UNIVERSITETET I OSLO

Like dokumenter
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

UNIVERSITETET I OSLO

Informasjon Prøveeksamen i IN1000 høsten 2018

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

INF1000 Eksamen 2014 (modifisert)

UNIVERSITETET I OSLO

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgaver 2014

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

UNIVERSITETET I OSLO

INF1000 Prøveeksamen Oppgave 7 og 9

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

INF1000 Eksamen 2014 (modifisert)

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Objektorientert programmering i Python

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

EKSAMENSOPPGAVE I INF-1100

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

UNIVERSITETET I OSLO

EKSAMEN I EMNET INF100/INF100-F Grunnkurs i programmering (Programmering 1) Fredag 16. desember 2005 Tid: 09:00 14:00

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

UNIVERSITETET I OSLO

INF106 Objektorientert programmering

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

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

Gjennomgang av eksamen H99

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

UNIVERSITETET I OSLO

IN Seminaroppgaver til uke 11

Innhold uke 8. Objekter: Bruk og intern organisering. Beskjeder: Oblig 1 6. Beskjeder: Oblig 7 (og 8)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

Introduksjon til objektorientert programmering

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. : INF-1400 Objektorientert programmering. Oppgavesettet er på 5 sider inklusiv forside

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

2 Om statiske variable/konstanter og statiske metoder.

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

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

UNIVERSITETET I OSLO

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

UNIVERSITETET I OSLO

Forside. 1 Hva skrives ut?

Endret litt som ukeoppgave i INF1010 våren 2004

INF Uke 10. Ukesoppgaver oktober 2012

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

Transkript:

Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer) Oppgavesettet er på: 8 sider Vedlegg: Ingen Tillatte hjelpemidler: Alle trykte og skrevne 1. Kontroller at oppgavesettet er komplett, og les nøye gjennom oppgavene før du løser dem. 2. Du kan legge dine egne forutsetninger til grunn og gjøre rimelige antagelser, så lenge de ikke bryter med oppgavens «ånd». Gjør i så fall rede for disse forutsetningene og antagelsene. 3. Poengangivelsen øverst i hver oppgave angir maksimalt antall poeng. Sammenlagt gir alle oppgavene maksimalt 100 poeng. Unngå å bruke en stor del av tiden din på oppgaver som gir deg få poeng. 4. Svarene skal skrives på gjennomslagspapir. Skriv hardt nok til at besvarelsen blir mulig å lese på alle gjennomslagsarkene, og ikke legg andre deler av eksamensoppgaven under når du skriver. 5. Du beholder selv underste ark etter levering av de to øverste til eksamensinspektøren. Oppgave 1 (3 poeng) a) Hva er verdien til tall etter at følgende kode er utført? tall = 3+2+1 tall = tall*2 1

b) Hva skrives ut på skjermen når følgende kode utføres? int a = 10; int b = 1; while (a>0) { b=b*2; a=a-b; } System.out.println("a=" + a); System.out.println("b=" + b); Oppgave 2 (4 poeng) Vi har en metode doble som vist nedenfor: int doble(int a){ a = a*2; return a; } a) Hva er verdien til a etter at følgende kode er kjørt? int a = 2; int b = doble(a); b) Hva er verdien til b etter at følgende kode er kjørt? int a = 2; int b = doble(a+1); Oppgave 3 (4 poeng) <Digital reprresentasjon: ikke pensum IN1000> Oppgave 4 (7 poeng) a) Skriv en funksjon beregnareal (lengde, bredde) som regner ut arealet av et rektangel ved å multiplisere lengde og bredde, og returnerer resultatet. b) Endre funksjonen slik at verdien -1 returneres hvis oppgitt lengde eller bredde er et negativt tall. 2

Oppgave 5 (5 poeng) Hva skrives ut om du kjører dette programmet? class MinKlasse : def init (self, starttekst) : self._minverdi = 2 self._mintekst = starttekst def inkrementerverdi(self) : self._minverdi += 4 def setttekst(self, tekst) : self._mintekst = tekst def hentbeskjed(self) : return self._mintekst + str(self._minverdi) mittobjekt = MinKlasse("AB") tekst = mittobjekt.hentbeskjed() mittobjekt.inkrementerverdi() mittobjekt.setttekst(tekst) mittobjekt.inkrementerverdi() print(mittobjekt.hentbeskjed()) Oppgave 6 (5 poeng) Skriv en funksjon kampresultat(scoringerlaga, scoringerlagb) som tar to heltall som parametre og returnerer en tekst. Funksjonen skal returnere "hjemme" dersom scoringerlaga er høyere enn scoringerlagb, "borte" dersom scoringerlagb er høyere enn scoringerlaga, og "uavgjort" dersom scoringerlaga er lik scoringerlagb. 3

Oppgave 7 (50 poeng) Du er blitt bedt om å programmere deler av nettjenesten «Reisehjelpen» for planlegging av opplevelsesreiser for turister. Tjenesten bruker en klasse Katalog til å holde orden på destinasjoner og finne frem informasjon om de attraksjonene hver destinasjon kan by på. UML-diagrammet viser klassene som brukes av Reisehjelpen og deres relasjoner. Om du hopper over en deloppgave er det likevel viktig at du leser hele teksten. Du kan fritt bruke klasser og metoder som er oppgitt tidligere i oppgaven selv om du ikke har skrevet dem. Alle datoer representeres i programmet som heltall på formen aammdd der aa, mm og dd angir henholdvis årstall, måned og dag (4. desember 2015 lagres dermed som heltallet 151204). Hver attraksjon har et navn, en sesongstart og en sesongslutt, og kan være egnet eller ikke for barn: class Attraksjon : # Konstruktoer. # Parameteren barn tar en boolsk verdi: Egnet eller ikke for barn def init (self, navn, barn, fra, til) : self._navn = navn # Skriver ut alle instansvariables innhold på en linje på terminal # (det er ikke vesentlig hvordan du velger å formattere dette) def skrivattr (self) : # Returner en boolsk verdi - er attraksjonen egnet for barn? def forbarn (self) : # Returnerer om en attraksjon er aapen minst en av dagene i en gitt # periode (inkludert forste og siste dag i perioden): def aapeniperiode (self, fra, til) : a) 5 poeng Skriv klassen Attraksjon med datarepresentasjon, konstruktør og metodene skrivattr og forbarn. b) 5 poeng Skriv metoden aapeniperiode i klassen Attraksjon. 4

Oppgave 7 (forts) Klassen Destinasjon representerer destinasjoner denne tjenesten kjenner til. Hvert objekt av klassen Destinasjon har et navn og en samling attraksjoner som lagres i en ArrayList. Navnet og attraksjonene oppgis som parametere til konstruktøren når det opprettes en ny Destinasjon. class Destinasjon : # Konstruktør skrives av deg # Returnerer destinasjonens navn: def hentdestnavn (self) : # Skriver ut sitt navn og alle sine attraksjoner på terminalen: def skrivdest (self) : # Legger til en ny lokal attraksjon: def leggtilattr (self, nyattr) : # Returnerer et tall som angir hvor mange av de lokale # attraksjonene som oppfyller et sett med krav (se deloppgave e): def antallaktuelleattr (self, barn, fra, til) : c) 3 poeng Skriv konstruktør for klassen Destinasjon. d) (7 poeng) Skriv metodene hentdestnavn, skrivdest og leggtilattr i klassen Destinasjon. e) (5 poeng) (vanskelig) Skriv metoden antallaktuelleattr (self, barn, fradato, tildato) i klassen Destinasjon. Metoden skal returnere et tall som angir hvor mange av de lokale attraksjonene som oppfyller et sett med krav etter følgende regler: Hvis parameteren barn er True skal kun attraksjoner som egner seg for barn regnes med (alle egner seg for voksne) Kun attraksjoner som er åpne minst en dag i perioden fra og med fradato til og med tildato skal regnes med - Eksamenssettet fortsetter på neste side - - 5

Oppgave 7 (forts) Klassen Katalog holder orden på alle destinasjoner og tilbyr ulike operasjoner på disse: class Katalog : # Konstruktør. Leser alle destinasjonene fra fil og oppretter, # objekter som legges inn i en Dictionary med destinasjonens navn # som nøkkel: def init (self, katalogfil) : self._katalogfil = katalogfil self._destkatalog = {} self._lesdestinasjonsfil(self._katalogfil) # Metode som kalles fra konstruktøren for å lese inn katalogdata # i _destkatalog. # NB: Denne skal du ikke skrive: def _lesdestinasjonsfil (self, filnavn) : # Metode som skriver ut navnet på alle destinasjoner i katalogen: def skrivdestliste (self) : # Metode som skriver ut navn og informasjon om alle attraksjoner # på den oppgitte destinasjonen: def skrivendest (self, destnavn) : # Metode som legger til en ny attraksjon for en destinasjon. # Om destinasjonen ikke finnes skal metoden returnere uten å # gjøre noe: def nyattr (self, destnavn, attrnavn,bvennlig, apenfra, apentil) : # Metode som leser nye attraksjoner for en destinasjon fra fil. # Om destinasjon med angitt navn ikke eksisterer fra før opprettes # en ny destinasjon, ellers legges attraksjonene til den # eksisterende destinasjonen. Filformat beskrives i deloppgave h): def nydestfrafil (self, destnavn, filnavn) : # Metode som går gjennom alle destinasjoner, og returnerer navnet # på den destinasjonen som har flest attraksjoner som # tilfredsstiller krav som beskrevet i oppgave e): def finnbestedest (self, barn, fra, til) : - - Eksamenssettet fortsetter på neste side - - 6

Oppgave 7 (forts) f) 5 poeng Skriv metodene skrivdestliste og skrivendest i klassen Katalog. g) 5 poeng Skriv metoden nyattr i klassen Katalog. h) 7 poeng Skriv metoden nydestfrafil i klassen Katalog. Filen som skal leses inneholder en eller flere attraksjoner som tilhører samme destinasjon. For hver attraksjon ligger det alltid 4 linjer på følgende format, en linje for hver attributt. Eksempelet viser en fil for destinasjon Oslo: Slottet VOKSNE 150101 161231 Frognerbadet BARN 150517 150820 i) 8 poeng (vanskelig) Skriv metoden finnbestedest i klassen Katalog. - Eksamenssettet fortsetter på neste side - - 7

Oppgave 8 (7 poeng) <Personopplysningsloven: ikke pensum IN1000> Oppgave 9 (15 poeng) a) (7 poeng) Skriv en funksjon trimzeros ( a) som tar inn en liste med heltall og returnerer en liste med heltall hvor alle (eventuelle) nuller i starten og slutten av listen er fjernet. Dersom det er nuller inne i listen (dvs som har andre tall foran og bak seg) skal disse ikke fjernes. Gitt en liste [0,0,1,2,0,3,0,0,4,0] som argument, skal funksjonen altså returnere listen [1,2,0,3,0,0,4]. Effektiviteten av løsningen blir ikke tillagt vekt, formålet er kun at koden skal gi ønsket resultat. b) (8 poeng) Skriv en funksjon som tar inn en tekststreng som parameter og som returnerer et heltall. Funksjonen skal telle antall ulike bokstaver i den fikk inn som parameter og returnere dette antallet. Hvis funksjonen heter telling, så skal f.eks. setningen. v = telling ( accag ) føre til at variabelen v blir tilordnet verdien 3. 8