Eksamensoppgaver 2014

Like dokumenter
INF1000 Eksamen 2014 (modifisert)

INF1000 Eksamen 2014 (modifisert)

UNIVERSITETET I OSLO

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.

Seminaroppgaver IN1010, uke 2

Informasjon Prøveeksamen i IN1000 høsten 2018

Finne ut om en løsning er helt riktig og korrigere ved behov

UNIVERSITETET I OSLO

Finne ut om en løsning er helt riktig og korrigere ved behov

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Oppgave 1.1 (1 poeng) Oppgave 1.2 (2 poeng) Oppgave 1.3 (2 poeng) 1.1

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; }

UNIVERSITETET I OSLO

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


LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

IN Seminaroppgaver til uke 11

Hvordan løse problemer med programmering?

UNIVERSITETET I OSLO

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Løse reelle problemer

TDT4110 IT Grunnkurs Høst 2015

Øvingsforelesning 1 Python (TDT4110)

INF1000 Prøveeksamen Oppgave 7 og 9

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

INF Ekstrainnlevering

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

Anta at følgende programsetninger utføres. Hva skrives ut på skjermen? Hva skrives ut her (skriv nøyaktig de karakterene som printes, og bare de)?

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

Øvingsforelesning 7 i Python (TDT4110)

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

Øvingsforelesning i Python (TDT4110)

INF Uke 10. Ukesoppgaver oktober 2012

Objektorientert programmering i Python

IN1000 Obligatorisk innlevering 7

Klasser og objekter. Tuva Kristine Thoresen 4. november Institutt for Informatikk

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

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

Forside. 1 Hva skrives ut?

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

UNIVERSITETET I OSLO

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

UNIVERSITETET I OSLO

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

UNIVERSITETET I OSLO

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Klasser og objekter. Tuva Kristine Thoresen 21. oktober Institutt for Informatikk

Repetisjon Novice Videregående Python PDF

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

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

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11).

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Ch.7: Innføring i klasser

Øvingsforelesning 5 Python (TDT4110)

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

UNIVERSITETET I OSLO

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

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

Endret litt som ukeoppgave i INF1010 våren 2004

Algoritmer og datastrukturer Eksamen

UNIVERSITETET I OSLO

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Utførelse av programmer, metoder og synlighet av variabler i JSP

UNIVERSITETET I OSLO

IN1010 V19, Obligatorisk oppgave 2

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

UNIVERSITETET I OSLO

Øvingsforelesning 5 Python (TDT4110)

Løse reelle problemer

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Introduksjon til objektorientert programmering

Transkript:

Eksamensoppgaver 2014 Først kommer alle de relevante små-oppgavene og deretter den store oppgaven. Oppgave 1 (4 p) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2 b) Anta at følgende programsetninger utføres. Hva skrives ut på skjermen? a = "ab" b = "b" + a a = a + b print(a) c) Hva er verdien til x etter at følgende kode er utført? x = 6 y = 15 while x < 30 : if x < y : x = x * 2 else : y += 5 x -= 5 Oppgave 2 (6 p) a) Hva skrives ut her? print(regnut(4, 10)) def regnut(a, b): if a == b : svar = a * 2; else svar = a; return svar;

b) Anta at programmet nedenfor utføres. Hva blir utskriften på skjermen? #anta at dette er en annen fil som har importert MinKlasse riktig mittobjekt = MinKlasse(5); mittobjekt.leggtilverdi(3); verdi = mittobjekt.hentverdi() mittobjekt.leggtilverdi(verdi) print(mittobjekt.hentverdi()) #klassen MinKlasse class MinKlasse : def init (self, startverdi) : self._minverdi = startverdi def leggtilverdi(self, tillegg): self._minverdi += tillegg def hentverdi(self) : return self._minverdi c) (Vanskelig) Det er en logisk feil i funksjonen stoerst nedenfor, som gjør at den ikke alltid returnerer det største av de tre tallene den får som parameter. Gi et eksempel på et kall med tre tall som fører til at funksjonen returnerer et annet tall enn det største. def stoerst(a, b, c) : if a>b && a>c : svar = a return svar elif b>a && b>c : svar = b return svar else : svar = c return svar Oppgave 4 (5 p)

Skriv en funksjon def pris(gratis, alder) Dersom parameteren gratis har verdien true, skal funksjonen alltid returnere 0. Dersom parameteren gratis har verdien false og verdien av alder er mindre enn 18, skal funksjonen returnere 100, ellers 200. Altså skal f.eks. kallet pris (true, 10) returnere 0, kallet pris(false,10) returnere 100 og kallet pris(false, 50) returnere 200. Oppgave 5 (5 p) Skriv en funksjon som har en liste med tall som parameter og som returnerer en verdi av type boolean. Funksjonen skal sjekke om alle verdiene i listen er i stigende rekkefølge (sortert). Dersom alle verdiene er i sortert rekkefølge skal funksjonen returnere true, ellers skal funksjonen returnere false. Du kan anta at alle verdiene i listen er ulike. Funksjonen trenger altså ikke ta hensyn til eventuelle like verdier. Oppgave 6 (6 p) a) Skriv en funksjon med liste av tall som parameter og som returnerer en verdi av type int (heltall). Dersom alle verdiene i listen er like, skal metoden returnere denne verdien. Dersom ikke alle verdiene er like, skal den returnere tallet -1. Du kan anta at listen inneholder minst en verdi.

b) Dersom du kaller funksjonen fra a) med en ikke-tom liste av tall og får -1 tilbake, kan du da være sikker på at ikke alle tallene i listen du sendte inn var like? Begrunn svaret. Oppgave 9 (10 p) Dersom du kaster 3 terninger, er det 6*6*6=216 mulige utfall av antall øyne på de tre terningene (1-1-1, 1-1-2,, 6-6-6). Bare i 6 av disse 216 utfallene er det samme antall øyne på alle de tre terningene (1-1-1, 2-2-2 osv). Skriv de nødvendige programlinjene for å printe ut alle kombinasjoner av antall øyne på de tre terningene på terminalen. Du trenger ikke skrive et komplett program med klasse og metoder, bare anta at det er på plass. Print til slutt ut hvor mange kombinasjoner som hadde minst 2 like terninger. Merk at 1-1-2 og 1-2-1 i denne sammenhengen er to ulike kombinasjoner, slik at begge skal printes ut og telle med i antall kombinasjoner med minst 2 like terninger.

Oppgave 7 Familiens ukeplaner (50 poeng) Du har påtatt deg å lage ukeplaner for hele familiens faste aktiviteter. For å gjøre det enkelt antar vi at alle aktiviteter starter på en hel time (kl 00.00, 01.00, 02.00 etc) og at de alle varer nøyaktig 1 time. a) Klassen Aktivitet skal ha en representasjon med disse to objektvariablene: en String med navn aktnavn som brukes til å beskrive hva slags aktivitet det gjelder (for eksempel "svømming" eller "trener fotball 1A"), og et tall med navn start som inneholder starttidspunktet for aktiviteten. Klassen skal også inneholde denne konstruktøren: def init (self, hva, kl) # Innmat Skriv klassen Aktivitet inkludert konstruktør (som må programmeres ferdig). b) Skriv klassen Ukedag med dette foreløpige grensesnittet (dvs disse metodene): #Konstruktør def init (self, dag) # Oppretter og setter inn ny aktivitet på angitt klokkeslett, og gir feilmelding til terminal om tidspunktet er opptatt def settinn(self, hva, kl) #Returnerer når på dagen den første aktiviteten starter (-1 hvis det ikke finnes noen aktivitet denne dagen) def tidligste(self) # Returnerer når seneste aktivitet den dagen starter (-1 hvis ingen aktiviteter) def seneste(self) # Beregner og returnerer antall aktiviteter den dagen def antall(self) c) Klassen Ukedag skal nå utvides med metoden settinnledig som setter inn en aktivitet for en ledig time den dagen. Hvis kalenderen er full, skal metoden skrive ut en feilmelding. Hvis det ikke er noen aktiviteter fra før den dagen, skal aktiviteten starte kl 12.00. Ellers 6 skal metoden helst sette inn den nye aktiviteten i en ledig time mellom tidligste og seneste aktivitet; hvis det ikke er mulig, skal den settes rett etter den hittil

seneste aktiviteten; om heller ikke det er mulig, settes aktiviteten inn rett før den hittil tidligste. Skriv metoden def settinnledig(self, hva). d) Skriv klassen Ukeplan med følgende grensesnitt (dvs metoder): #Konstruktør def init (self, hvem) #Finner og returnerer dagen med flest aktiviteter def travleste(self) e) Klassen Ukeplan skal nå utvides med metoden skrivut. # Metoden skal sørge for at ukeplanen skrives ut, for eksempel slik: Ukeplan for Aud: # Mandag Kl 9: Forelesning Kl 10: Forelesning Kl 12: Lunsj Onsdag Kl 17: Trening def skrivut(self) Du vil sannsynligvis trenge nye metoder i flere av de andre klassene også; skriv disse metodene og angi i hvilken klasse den enkelte metoden hører hjemme. Selve formatteringen av utskriften er ikke viktig, så ikke bruk mye tid på det. f) (Vanskelig) Skriv klassen Familie med grensesnittet: #Denne metoden skal skrive ut en liste over alle de ulike aktivitetene # (fra aktnavn-variabelen) familien er med på def skrivaktiviteter(self) Aktiviteter med samme navn (dvs har lik verdi i aktnavn-variabelen) skal kun skrives ut én gang selv om de forekommer flere ganger hos samme eller forskjellige familiemedlemmer. Hint: Bruk en liste til til å holde orden på hvilke aktivitetsnavn som har vært skrevet ut.