UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

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

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

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

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

UNIVERSITETET I OSLO

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

INF1000: noen avsluttende ord

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

Endret litt som ukeoppgave i INF1010 våren 2004

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

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

INF1000 Prøveeksamen Oppgave 7 og 9

UNIVERSITETET I OSLO

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oblig4 - forklaringer. Arne og Ole Christian

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

Eksamen IN1010/INF1010 våren 2018

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

INF1000 Eksamen 2014 (modifisert)

UNIVERSITETET I OSLO

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

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

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

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

INF1000 Behandling av tekster

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

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster

Eksamensoppgaver 2014

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

INF Uke 10. Ukesoppgaver oktober 2012

Oblig 4Hybelhus litt mer tips enn i oppgaven

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

UNIVERSITETET I OSLO

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

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

UNIVERSITETET I OSLO

København 20 Stockholm

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

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

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

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

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

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Torsdag 28. november 2013 Tidspunkter: 10:15 Utdeling av prøveeksamen 14:00 Pizza-servering (1. etg Ole-Johan Dahls hus) 14:30 Gjennomgang av løsning (Auditorium: Simula) Oppgavesettet er på : 5 sider Vedlegg : Ingen Tillatte hjelpemidler : Alle trykte og skrevne Kontroller at oppgavesettet er komplett, og les nøye gjennom oppgavene før du løser dem. Poengangivelsen øverst i hver oppgave angir maksimalt antall poeng. 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. Til eksamen skal svarene skrives på gjennomslagspapir. Da må du huske å skrive hardt nok til at besvarelsen blir mulig å lese på alle gjennomslagsarkene, og ikke legge andre deler av eksamensoppgaven under når du skriver. Til eksamen skal du selv beholde underste arket etter levering av de to øverste til eksamensinspektøren. Nummerer sidene, og husk å skrive kandidatnummeret ditt på besvarelsen. Oppgave 1 (6 poeng) a) Hvor mange double-verdier er det plass til i denne arrayen: double[][] vekt = new double[9][9]; b) Hva blir skrevet ut her? String txt = "OLE"; int n = txt.length(); for (int i=0; i<n; i++) { System.out.print(txt.charAt(n-i-1)); 1

Oppgave 2 (10 poeng) Angi hvilke av disse programsetningene er lovlige i Java, og for de som er lovlige skriv hvilken verdi variabelen i venstre side av tilordningen får. a) String verdi1 = "double"; b) double verdi2 = "String"; c) double vekt1 = 5/2; d) double vekt2 = 5.0/2.0; e) int vekt3 = 5.0/2.0; f) double resultat = 5.2 + 14.6 * 3.7 + resultat; g) String svar1 = "2 + 3.14 = " + (2 + 3.14); h) boolean svar2 = true && false; i) boolean svar3 = true false; j) boolean svar4 = (true && false) (true false); Oppgave 3 (9 poeng) a) Hvor mange ganger blir "Arne" skrevet ut her? for (int k = 0; k < 5; k++) { for (int r = 0; r < 20; r++) { b) Hvor mange ganger blir "Arne" skrevet ut her? for (int k = 0; k < 5; k++) { for (int r = k; r < 20; r++) { c) Hvor mange ganger blir "Arne" skrevet ut her? for (int k = 0; k < 20; k++) { for (int r = k; r < 5; r++) { Oppgave 4 (15 poeng) I programmer kan det være behov for å konkatenere (slå sammen) to tekststrenger, slik som vi gjør når vi skriver String t = s1 + s2; der s1 og s2 er to String-variable. I denne oppgaven skal du lage en metode som gjør det samme, men mange ganger. Mer presist skal du lage en metode som har to parametre: en String-array og en String. Metoden skal konkatenere hvert enkelt element i String-arrayen med den angitte String-verdien og returnere resultatet i en 2

ny String-array som er like lang som den opprinnelige. Hvis metoden heter konkatener, så skal f.eks. setningene String[] ordliste = {"Karoline", "Anders", "Camilla"; String[] resultat = konkatener(ordliste, " er flink"); resultere i at resultat blir en String-array av lengde 3 med verdiene "Karoline er flink", "Anders er flink" og "Camilla er flink", henholdsvis. Oppgave 5 (25 poeng) Skriv en metode med en int-array som parameter og som returnerer en int-verdi, og som skal finne ut hvilken verdi som forekommer flest ganger i arrayen og returnere denne. Hvis det er flere verdier i arrayen som tilfredsstiller betingelsen, skal metoden returnere med en av disse (vilkårlig hvilken). Eksempel: hvis arrayen som gis som parameter inneholder verdiene 2 6 6 3 8 1 3 9 14 så forekommer 3 og 6 to ganger, og metoden skal returnere en av dem (vilkårlig hvilken). Oppgave 6 (25 poeng) Anta at tekstfilen "Ord.txt" inneholder en rekke ord atskilt av blanke tegn (du kan anta at filen ikke inneholder noen spesialtegn som punktum, komma, kolon, osv). Skriv et fullstendig program som først leser filen og som deretter skriver ut på skjermen hvor mange ulike ord av lengde 1, lengde 2, lengde 3, og lengde 4 som forekommer i filen. Eksempel: dersom filen har følgende innhold: it was a dark and stormy night the rain fell in torrents except at occasional intervals when it was checked by a violent gust of wind which swept up the streets så skal programmet skrive ut på skjermen følgende (teksten i parentes til høyre på hver linje er bare ment som en kommentar til deg og skal ikke være en del av utskriften): Ord av lengde 1: 1 Ord av lengde 2: 6 Ord av lengde 3: 3 Ord av lengde 4: 6 ("a") ("it", "in", "at", "by", "of", "up") ("was", "and", "the") ("dark", "rain", "fell", "when", "gust", "wind") Du kan anta at ordene bare inneholder små bokstaver, og du kan anta at bare tekstlig helt like ord regnes som samme ord, slik at f.eks. "rain" og "rains" er to ulike ord. Bruk enten Stringarray eller HashMap til å lagre ordene du leser inn fra fil. Oppgave 7 (8 poeng) a) Skriv binærtallet 1110 som et desimaltall. b) Skriv desimaltallet 63 som et binærtall. c) Skriv binærtallet 11001 som en sum av to binærtall (hvor begge større enn binærtallet 10). d) Skriv desimaltall 20 som et heksadesimalt tall. 3

Oppgave 8 (80 poeng) En norsk kommune har et antall barneskoler hvor det undervises skolebarn på 7 klassetrinn (klassetrinn 1 til klassetrinn 7). Et barn har rett til å være elev på en bestemt skole ut fra hvor barnet bor; kommunene er da delt opp i like mange skolekretser som det er barneskoler. Et unntak er en livssynsskole som for eksempel Steinerskolen, som tar opp elever fra hele kommunen. En skole har et visst antall klasserom, og kan ikke ha flere klasser enn antall klasserom. Det kan være flere klasser på hvert trinn (f.eks. klasse 4A og 4B). I en klasse kan det maksimalt være 28 elever. Hver skole har en rektor og hver klasse har en kontaktlærer og ingen lærer er kontaktlærer i mer enn en klasse. Som du husker selv fra skolen kan det være mer enn en lærer pr time i en klasse og ikke samme lærere hele tiden i en bestemt klasse. Du skal nå lage de aller første delene av et veldig forenklet administrasjonssystem for skoler, elever, rektorer og lærere. a) Tegn et UML-diagram over forholdet mellom klassene: Kommune, Skole, Klasserom, Klasse, Elev og Lærer. Skriv navn og antall på alle forholdene i diagrammet. b) Deklarer Java-klasser for ulike klassene i UML-diagrammet, og legg inn de objektvariablene du synes klassene skal ha ut fra beskrivelsen ovenfor. Blant annet har de fleste av objektene et navn. c) Til å lette arbeidet med å starte systemet, er det utarbeidet en fil skolene2012.txt (en for hver kommune) som beskriver kommunens skoler. De tre første linjene inneholder kommunenavnet, skoleåret filen gjelder for (skoleåret 2011/2012 kalles 2012), og antall skoler i kommunen. Deretter er det en linje per skole; denne inneholder først skolens navn og så antall klasserom. Hvis vi velger Nesodden som kommunen vi lager system for i 2013, vil fila vi leser for forrige år (2012) se slik ut: Nesodden 2012 7 Berger, 14 Nesoddtangen, 25 Bjørnemyr, 10 Myklerud, 15 Jar, 7 Fjellstrand, 9 Nesodden Steinerskole, 14 Skriv en konstruktør i klassen Kommune som leser denne fila (uansett hvilke kommune dette gjelder) og oppretter det nødvendige antall skoler og klasserom. 4

d) (Kan puffes) For videre å lette arbeidet før oppstart av et nytt skoleår (her 2013) er det for hver skole en fil som beskriver antall elver, rektors navn, alle lærernes navn og så for hver klasse, de elevene som gikk der i fjor. Vi antar at ingen flytter i sommerferien. For Berger Skole ved avslutningen i juni 2012 heter filen: Berger2012.txt, for Jar Skole: Jar2012.txt,.. osv.. Husk når du leser denne filen, så skal elevene i 7. klasse gå over til ungdomskolen (som ikke er en del av dette systemet), og de andre skal rykke opp en klasse, slik at de som for eksempel gikk i klasse 2A i 2012 skal nå i 2013 gå i klasse 3A, osv. Fila inneholder først en linje med rektors navn, antall lærere på skolen, og alle lærernes navn (opplysningene på linjen er atskilt med komma) og en linje med antall klasser på skolen (i eksemplet nedenfor har skolen 14 klasser). Deretter kommer det informasjon om alle klassene på skolen. Informasjonen om en enkelt klasse består av en innledende linje med klassens navn (f.eks. 7A), kontaktlærerens navn (f.eks. Geir By), og antall elever i klassen (f.eks. 14), fulgt av en rekke linjer som gir elevenes navn. De fem første linjene for Jar Skole kunne da være: Snillfrid Klem, 19, Ola Busk, Geir By, <+17 flere lærernavn > 14 7A,Geir By,14 Stein Basse Nesland Omar Pamuk.. Skriv kode der denne filen leses i konstruktøren til det tilhørende Skole-objektet for den skolen som omtales (Hint: Leser du fila med klassen In fra easyio, vil inword(, ) og inint(, ) lese alt til neste komma på en linje som henholdsvis en String eller heltall. Metoden inline() leser alt på en linje for eksempel et navn). Oppgave 9 (20 poeng) Det er harde tider i skolen, og en av rektorene i oppgave 8 er på desperat jakt etter nye inntekter til skolen sin (ikke til seg selv). Han tenker seg å selge klasselister (navn + adresse) til næringsdrivende som selger skikkelige produkter (klær, plater, leker, mobiltelefoner o.l) slik at de kan sende reklame hjem til elevenes foreldre og barna selv. a) Er dette tillatt etter personvernloven? b) Hvis rektor søker konsesjon, er det da tillatt? Begrunn svarene med henvisning til relevante paragrafer i loven. 5