INF1000 Eksamen 2014 (modifisert)

Like dokumenter
Eksamensoppgaver 2014

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.

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

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

Informasjon Prøveeksamen i IN1000 høsten 2018

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

Seminaroppgaver IN1010, uke 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løse reelle problemer

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

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

INF1000 Prøveeksamen Oppgave 7 og 9

UNIVERSITETET I OSLO

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

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

Hvordan løse problemer med programmering?

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

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

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

INF Uke 10. Ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

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


UNIVERSITETET I OSLO

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

Forside. 1 Hva skrives ut?

IN Seminaroppgaver til uke 11

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

UNIVERSITETET I OSLO

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)?

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

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

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

UNIVERSITETET I OSLO

Øvingsforelesning 7 i Python (TDT4110)

TDT4110 IT Grunnkurs Høst 2015

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

Øvingsforelesning 1 Python (TDT4110)

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

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

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

INF Ekstrainnlevering

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)

INF1000: Forelesning 7

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

IN1000 Obligatorisk innlevering 7

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO

Øvingsforelesning i Python (TDT4110)

UNIVERSITETET I OSLO

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

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

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

UNIVERSITETET I OSLO

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

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

Løse reelle problemer

UNIVERSITETET I OSLO

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

Objektorientert programmering i Python

TDT4100 Objektorientert programmering

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Introduksjon til objektorientert programmering

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

Gjennomgang av eksamen H99

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

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

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen i INF1000

INF1010 Sortering. Marit Nybakken 1. mars 2004

UNIVERSITETET I OSLO

INF 1010, vår 2005 Løsningsforslag uke 11

INF1000 Uke 14. Løsningsforslag - prøveeksamen. Institutt for Informatikk Fredrik Sørensen og Arne Maus

UNIVERSITETET I OSLO

Transkript:

INF1000 Eksamen 2014 (modifisert) Oppgave 1 (4 poeng) 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 poeng) a) Hva skrives ut her? def regnut(a, b): if a == b : svar = a * 2 else : svar = a return svar print(regnut(4, 10)) Side 1 av 6

b) Anta at vi har følgende klasse: #klassen MinKlasse class MinKlasse : def init (self, startverdi) : self._minverdi = startverdi def leggtilverdi(self, tillegg): self._minverdi += tillegg def hentverdi(self) : return self._minverdi Hva blir utskriften på skjermen når programmet nedenfor utføres? #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()) 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 and a>c : svar = a return svar elif b>a and b>c : svar = b return svar else : svar = c return svar Oppgave 3 (4 poeng) Side 2 av 6

Oppgave 4 (5 poeng) 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 poeng) 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 poeng) 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. Side 3 av 6

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. Du skal bruke klassene vist i dette UML klassediagrammet: 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 nødvendige objektvariable og 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): Side 4 av 6

# 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 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 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 konstruktør og nødvendige objektvariabler, i tillegg til metoden skrivaktiviteter, som skal skrive ut en liste over alle de ulike aktivitetene (fra aktnavn-variabelen) familien er med på. 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. Side 5 av 6

Hint: Bruk en liste til til å holde orden på hvilke aktivitetsnavn som har vært skrevet ut. Oppgave 8 (10 poeng) Oppgave 9 (10 poeng) 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. 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. Side 6 av 6