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



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

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

Informasjon Prøveeksamen i IN1000 høsten 2018

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

TOD063 Datastrukturer og algoritmer

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

UNIVERSITETET I OSLO

Eksamensoppgave i IFUD1025 Programmering i Java

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

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

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

INF1010 våren januar. Objektorientering i Java

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

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

INF100 INNLEVERING 3 HØSTEN 2004

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

UNIVERSITETET I OSLO

IN Notat om I/O i Java

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

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

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

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

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

INF106 Objektorientert programmering

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Informasjon Eksamen i IN1000 høsten 2017

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

IN1010 våren januar. Objektorientering i Java

EKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG ENTREPRENØRSKAP

Algoritmer og Datastrukturer

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

Forelesning inf Java 4

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

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

Eksamen IN1010/INF1010 våren 2018

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

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

TDT4100 Objektorientert programmering

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Enkle generiske klasser i Java

Forelesning inf Java 5

UNIVERSITETET I OSLO

Forelesning inf Java 5

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

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

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

MAT-INF 1100: Obligatorisk oppgave 1

Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs

Transkript:

Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Onsdag 9. juni 2004 Tid: 9.00 14.00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler er tillatt. Generelt gjelder at programkode må være formatert slik at den er leselig og enkel å forstå. Sett inn kommentarer der det er nødvendig. Oppgave 1 (5 %) Hvilke verdier evalueres følgende Java-uttrykk til? Svarene skal ikke begrunnes. a) 2 + 3 * 4 b) 1 + 5 / 2.0 c) 1.0 + 5 / 2 d) true false e) (3 < 2) (2 + 2 == 4 && C >= B )

INF100/INF100-F Side 2 av 6 Oppgave 2 (15 %) Hver deloppgave inneholder et kjørbart Java-program som skriver ut noe på skjermen. Finn ut hva hvert program skriver ut. Svarene skal ikke begrunnes. a) (3%) Hvilket tall skrives ut når Oppg2a kjøres? public class Oppg2a { int n = 2; int m = n + 1; n += m*2; System.out.println(n); n = 0; b) (3%) Hva skrives ut når Oppg2b kjøres? public class Oppg2b { int i, j; for (i = 1; i < 9; i++) { j = i%4; if (j == 0) System.out.print("hopp"); else System.out.print(j); System.out.println("! i=" + i); c) (3%) Hvilket tall skrives ut når Oppg2c kjøres? public class Oppg2c { int[] t = { 3, 2, 4, 0, 1 ; int n = t[0] + t[t[1]] + t[t[t[2]]]; System.out.println(n);

INF100/INF100-F Side 3 av 6 d) (3%) Hva skrives ut når Oppg2d kjøres? public class Oppg2d { int n = 7; double[] a = { 0.6, 1.0, 1.4 ; halver(n,a); System.out.println(n); for (int i = 0; i < a.length; i++) System.out.println(a[i]); static void halver(int n, double[] tab) { n /= 2; for (int i = 0; i < tab.length; i++) tab[i] /= 2; e) (3%) Hva skrives ut når Klient2e kjøres? class Oppg2e { int s; Oppg2e(int n) { s = n; public int metode() { s++; return s; public class Klient2e { int s = 5; Oppg2e obj = new Oppg2e(10); int p = obj.metode(); int q = obj.metode(); System.out.println("s = " + s); System.out.println("p = " + p); System.out.println("q = " + q);

INF100/INF100-F Side 4 av 6 Oppgave 3 (15 %) I skihopp gis det 5 stilkarakterer for hvert hopp. Den beste og den dårligste strykes, og summen av de tre gjenstående utgjør stilpoengene. Lag et Java-program som leser inn fem stilkarakterer fra terminalen og beregner stilpoengene. For innlesingen kan du bruke metoden Terminal.lesDouble(), som lar brukeren taste inn et tall av typen double og returnerer tallet. Programmet skal kontrollere at hver stilkarakter ligger i intervallet f.o.m. 0.0 t.o.m. 20.0.

INF100/INF100-F Side 5 av 6 Oppgave 4 (65 %) Et rederi har skip som frakter stykkgods langs kysten, og de trenger et program for å holde oversikt over lasten til enhver tid. I denne oppgaven skal vi lage to sentrale klasser i dette programmet. Vi skal først lage en klasse Gods som representerer en enkeltsending som fraktes. En slik sending identifiseres med et ID-nummer (et heltall), og de andre egenskapene vi ønsker å lagre, er en innholdsbeskrivelse (en tekststreng), vekt i kg, og bestemmelseshavn (en streng, f.eks. "Haugesund"). Deloppgavene a g under skal besvares i form av én fullstendig klassedeklarasjon for klassen Gods. a) (3%) Definer passende feltvariabler for klassen. b) (3%) Lag en konstruktør som oppretter et Gods-objekt. Konstruktøren skal ta ID-nummeret, beskrivelsen, vekten og bestemmelsesstedet som parametre. c) (3%) Lag fire metoder hentid(), hentinnhold(), hentvekt() og hentdestinasjon() for å returnere de tilhørende verdiene. d) (3%) Lag tre metoder settinnhold(), settvekt() og settdestinasjon() (med passende parametre) for å endre egenskapene til et objekt. e) (3%) Lag en metode skrivtilfil() som skriver feltvariablenes verdier til en tekstfil. Metoden skal ta en filstrøm av klassen PrintWriter som parameter, og vi antar at strømmen er koblet til filen det skal skrives til. f) (7%) Lag en metode lesfrafil() som leser feltvariablenes verdier fra en tekstfil som ble skrevet av metoden i punkt e. Metoden skal ta en filstrøm av klassen BufferedReader som parameter, og vi antar at strømmen er koblet til filen det skal leses fra. g) (3%) Lag en ny konstruktør som selv tildeler ID-nummer. Det vil si at den bare tar beskrivelse, vekt og bestemmelsessted som parametre. Sørg for at alle objekter som opprettes med denne kontruktøren, får ulike ID-numre. (Hint: Bruk en statisk variabel.)

INF100/INF100-F Side 6 av 6 Vi skal nå lage en klasse for skip. Opplysningene vi trenger, er skipets navn (f.eks. M/S Java ), lastekapasitet i kg, og en liste over lasten ombord. Denne listen skal implementeres som en tabell av Gods-objekter. Vi må også vite totalvekten for lasten til enhver tid. Deloppgavene h n under skal besvares i form av én fullstendig klassedeklarasjon for klassen Skip. Lag gjerne hjelpemetoder hvis du finner det hensiktsmessig for å løse oppgavene. h) (4%) Definer passende feltvariabler for klassen. i) (4%) Lag en konstruktør som oppretter et skip. Som parametre angis skipets navn, lastekapasiteten og et maksimalt antall gods-objekter det skal settes av plass til. Når skipet opprettes, har det ingen last. j) (3%) Lag metoder hentnavn(), hentkapasitet() og henttotalvekt() som returnerer henholdsvis skipets navn, lastekapasitet og totalvekten av lasten ombord. k) (7%) Lag en metode lastgods() for å laste gods ombord på et skip. Metoden tar et Godsobjekt som parameter og sjekker om det er mulig å laste det. Hvis totalvekten med det nye objektet vil overskride lastekapasiteten, skrives det ut en feilmelding. Det samme skjer hvis maksimalt antall Gods-objekter blir overskredet. Ellers legges objektet inn i listen for det aktuelle skipet. Metoden skal returnere en boolsk verdi som forteller om lastingen var vellykket. l) (7%) Lag en metode lossgods() for å losse gods av skipet. Metoden tar ID-nummeret til Gods-objektet som parameter og returnerer en referanse til dette objektet, eller null hvis lasten ikke inneholdt noe objekt med riktig ID-nummer. m) (7%) Overlast den forrige metoden med en ny metode lossgods() som tar en havn (streng) som parameter og losser alle objekter med denne havnen som bestemmelsessted. Metoden returnerer antall objekter som ble losset. n) (8%) Ved dårlig vær kan det være nødvendig å redusere lastekapasiteten til et skip. Lag en metode endrekapasitet() som setter kapasiteten til en ny verdi gitt som parameter. Hvis lasten ombord overskrider den nye kapasiteten, skal metoden losse varer inntil totalvekten er innenfor grensen. Prøv å velge ut objekter slik at færrest mulig må losses, men at et lettere objekt foretrekkes framfor et tyngre hvis det er tilstrekkelig for å komme under grensen. Lykke til! Eivind Coward Khalid Mughal