Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013



Like dokumenter
UNIVERSITETET I OSLO

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

Oblig 4Hybelhus litt mer tips enn i oppgaven

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

OPPGAVE 5b og 8b Java Kode

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

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

UNIVERSITETET I OSLO

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

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

Klasser, objekter, pekere og UML. INF gruppe 13

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

Løsningsforslag til eksamen i INF1000 våren 2006

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

INF Uke 10. Ukesoppgaver oktober 2012

INF1000: Forelesning 7

Oppgave01.java class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8

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

INF1000 Behandling av tekster

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

INF1000: Forelesning 7. Konstruktører Static

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

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

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

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Forelesning inf Java 5

Forelesning inf Java 5

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

Prøveeksamen inf november Arne Maus og Ole Christian Lingjærde

INF Løsning på seminaropppgaver til uke 8

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

UNIVERSITETET I OSLO

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

Gjennomgang av en tenkt eksamensoppgave

UNIVERSITETET I OSLO

Repetisjon. INF gruppe 13

Gjennomgang av en tenkt eksamensoppgave

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

UNIVERSITETET I OSLO

Oblig 3 tips litt mer tips enn i oppgaven

INF1000 Metoder. Marit Nybakken 16. februar 2004

Oppgave 1 - Kortsvarsoppgave. INF1000 eksamen V05. Oppgave 1 (c) Oppgave 1 (b) Svar: a = 9, b=10

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

Forelesning inf Java 5

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

Oppgave 2 (20 poeng) float og long i oppgave 2:

PRØVEEKSAMEN (rettet versjon 27/11)

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

Inf 1000 høst 2005 Løsningsforslag ordinær eksamen

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

UNIVERSITETET I OSLO

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

UNIVERSITETET I OSLO

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

IN våren 2019 Onsdag 16. januar

UNIVERSITETET I OSLO

IN våren 2018 Tirsdag 16. januar

Oblig 3 tips litt mer tips enn i oppgaven

INF1010. Grensesnittet Comparable<T>

UNIVERSITETET I OSLO

Forelesning inf Java 4

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

INF1000: noen avsluttende ord

INF1010 våren januar. Objektorientering i Java

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

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

UNIVERSITETET I OSLO

INF1000 (Uke 14) Resten av eksamen H03 + del av V05

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

INF1010 UML. Marit Nybakken 26. januar 2004

UNIVERSITETET I OSLO

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INF1000 Prøveeksamen Oppgave 7 og 9

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden

INF1000: Forelesning 6. Klasser og objekter del 1

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

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

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

LO191D/LC191D Videregående programmering

UNIVERSITETET I OSLO

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

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

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

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Enkle generiske klasser i Java

Transkript:

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Oppgave 1) Her var det en manglende høyreparentes i 1 b) slik at de som svarer virker ikke eller lignende istedenfor det riktige svaret, skal få ett poeng for det. A) 27 B) «rn» C) «Large» Oppgave 2) riktige: bcg Oppgave 3) sekv= 0012345 0 (fordi en av de tallene som inngår i prod er 0) Oppgave 4) void Oppgave4(char [] eks){ int [] ant = new int[6]; for (int i = 0; i < eks.length; i++) { ant[(int)(eks[i]-'a')]++; System.out.println("Karakter Antall"); for (int i = 0; i < ant.length; i++) { System.out.println((char) ('A'+i) + " // end Oppgave 4 "+ant[i]); Oppgave 5) double Oppgave5(double a, double b, double c){ if (a < b && a < c ) return a; else if ( b < c) return b; else return c; // end Oppgave 5 Oppgave 6) int [] Oppgave6(int [] a){ int [] b = new int[a.length*2]; for (int i = 0; i<a.length; i++) { b[i] = a[i]; return b; // end Oppgave 6

Oppgave 7) a) 1001 2 = 9 10 b) 24 10 = 11000 2 c) 101 2 + 110 2 = 1011 2 d) 3F 16 = 15 +3*16 = 63 10 Oppgave 8) String Oppgave8 (String s) { // helt bra alternativ løsning: // søk forfra og bakfra med to heltall i,j så lenge s.charat(i eller j) == ' ' // og så ta substring: s = s.substring(i,j) // remove leading and trailing blanks while (s.length()>0 && s.charat(0) == ' '){ s = s.substring(1,s.length()); while (s.length()>0 && s.charat(s.length()-1) == ' '){ s = s.substring(0,s.length()-1); return s; // end Oppgave8 Oppgave 9) I denne oppgaven var det to unøyaktigheter i pkt 9a : 1. Det står: «Lag et UML-diagram», skulle helst stått: «Lag et UML-klassediagram». De som her tegner et objektdiagram med variable inne i «boksene» skal ikke trekkes for det. 2. Det står: «Objekter av klassen LeieAvtale skal holde oversikt over utleier (Person) og leietaker (Person).» - det burde stått: «Objekter av klassen LeieAvtale skal holde oversikt over utleier (Person) og leietaker (Person) og hvilken bil som er leid.». Har enda ikke sett noen som har ikke fått dette opplagte med seg, men det skal ikke trekkes for de som ikke har fått det forholdet med seg. Oppgave 9a) UML-klassediagrammet: Her er det igjen ikke én riktig, men flere, mer eller mindre, gode løsninger. Krav som alle UMLdiagrammer oppfylle er: 1. Alle forhold mellom klassene skal ha et passe navn og riktig antall på begge sider. 2. Det er to roller mellom Person og Leieavtale (leietager og utleier-rollene) 3. Det er Garasje som «administrerer» eller lignende leieavtalene. 4. Det er mulighet for 0 leieavtaler i diagammet.

5. Om det, som i Diagrammet nedenfor, skal være et krav at Fredrik eier 0..10 eller 1..10 biler, er vel like bra løsninger. Derimot kunne man tenke seg at det var to roller mellom Person og Bil en som beskrev leier- i tillegg til eier-relasjonen, og da er det ikke et forhold mellom Bil og Leieavtale. Disse relasjonene (rollene) mellom klassene er jo der vi tenker oss at det senere går pekere, og mange gode implementasjoner av oppg. 9 kan være mulig. Oppgave 9a UML klassediagram (antar at en person høyst leier en bil av gangen) Oppgave 9b class Bil { String merke, modell; int aarsmodell,aarkjopt, kjopepris; Bil(String merke, String modell, int aarsmodell, int aarkjopt, int kjopepris) { this.merke = merke; this.modell = modell; this.aarsmodell = aarsmodell; this.aarkjopt = aarkjopt; this.kjopepris = kjopepris; // end Bil

class Person{ String fnum, navn; Person(String navn, String fnum) { this.navn = navn; this.fnum=fnum; // end Person Oppgave 9c, e, f og h class Garasje{ Bil [] minebiler = new Bil[10]; int antbiler =9; HashMap<LeieAvtale, Bil> leie = new HashMap<LeieAvtale, Bil>(); static Person eier = new Person("Fredik Olsen","20128353258"); Garasje() { // kravet her er bare kode for 3 biler minebiler[0] = new Bil("Volvo","V60",2010,2010,460000); minebiler[1] = new Bil("Volvo","V60",2010,2010,460000); minebiler[2] = new Bil("Volvo","V60",2010,2010,460000); minebiler[3] = new Bil("Skoda","Octavia",2009,2012,150000); minebiler[4] = new Bil("Skoda","Octavia",2009,2012,170000); minebiler[5] = new Bil("Skoda","Octavia",2009,2012,185000); minebiler[6] = new Bil("Fiat","500",2013,2013,205000); minebiler[7] = new Bil("Fiat","500",2013,2013,205000); minebiler[8] = new Bil("Fiat","500",2013,2013,205000); int suminnkjopspris () { int sum =0; for (int i =0; i < antbiler; i++) { if (minebiler[i]!= null) // overflødig sum += minebiler[i].kjopepris; return sum; // end innkjopspris boolean kjopbil(string merke, String modell, int aarsmodell, int aarkjopt, int kjopepris) { if( antbiler < 10) { minebiler[antbiler] = new Bil(merke, modell, aarsmodell, aarkjopt, kjopepris); antbiler++; return true; return false; // end kjopbil

// Oppgave 9h egen sensur int verdiallebiler (int aar) { int sum=0, verdi; for (int i =0; i < antbiler; i++) { if (minebiler[i]!= null && minebiler[i].aarkjopt <= aar) { verdi=minebiler[i].kjopepris; for (int j = minebiler[i].aarkjopt+1; j <= aar; j++) { verdi = (int)(verdi*0.9); sum += verdi; // end if // end for alle biler return sum; // end verdiallebiler // end Garasje Oppgave 9d class LeieAvtale{ int [] fradato = new int[3]; Person leietager, utleier = Garasje.eier; Bil leiebilen; // se kommentar ovenfor int maanedsleie; LeieAvtale(int dag, int mnd, int aar, Person leietager, int maanedsleie, Bil b) { fradato[0] = dag; fradato[1] = mnd; fradato[2] = aar; this.leietager = leietager; this.maanedsleie= maanedsleie; leiebilen = b; // end LeieAvtale Oppgave 9g) class Oppgave9 { public static void main (String [] args) { Garasje g = new Garasje(); // end Oppgave9

Oppgave 10) a) Dette er sensitive data ( 2), så Fredrik må søke konsesjon hos Datatilsynet ( 33), og vil få lov hvis han kan dokumentere at data lagres forsvarlig og at ingen andre får adgang til disse data. b) Dette er ikke lov data samlet inn til ett formål, nyttes til et annet formål uten samtykke( 11). c) Dette er ikke lov, hvis disse data i det hele tatt brukes til annet enn backup-formål. Kundene vet ikke om dette, har ikke gitt samtykke og i utgangspunkt er det ikke lovlig. Slike data må ikke komme på avveier, og kan lett da misbrukes.