UNIVERSITETET I OSLO

Like dokumenter
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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

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

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

Oppgave 3: Binær representasjon

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

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

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

UNIVERSITETET I OSLO

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

Oblig4 - forklaringer. Arne og Ole Christian

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

UNIVERSITETET I OSLO

INF1000 Prøveeksamen Oppgave 7 og 9

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

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

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

INF1000 (Uke 12) Sortering

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

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

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

Forelesning inf Java 4

UNIVERSITETET I OSLO

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

Endret litt som ukeoppgave i INF1010 våren 2004

INF1000: noen avsluttende ord

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

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

Informasjon Prøveeksamen i IN1000 høsten 2018

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Blokker og metoder INF1000 (Uke 6) Metoder

INF1000 : Forelesning 4

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

UNIVERSITETET I OSLO

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

PRØVEEKSAMEN (rettet versjon 27/11)

2 Om statiske variable/konstanter og statiske metoder.

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

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

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

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

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering

Gjennomgang av eksamen H99

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

Transkript:

Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Onsdag 12. november 2014 Tid for eksamen : 10:15 til 14:15 4 timer 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. 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. Poengangivelsen øverst i hver oppgave angir maksimalt antall poeng.sammenlagt gir alle oppgavene maksimalt 100 poeng. Delsummene i parentes antyder poeng per deloppgave. Unngå å bruke en stor del av tiden din på oppgaver som gir deg få poeng. Svarene skal skrives på gjennomslagspapir. Skriv hardt nok til at besvarelsen blir mulig å lese på alle gjennomslagsarkene, og ikke legg andre deler av eksamensoppgaven under når du skriver. Du beholder selv underste ark etter levering av de to øverste til eksamensinspektøren. Nummerer sidene, og husk å skrive kandidatnummeret ditt på besvarelsen. Oppgave 1 (1+2+2 poeng) a) Hva er verdien til tall etter at følgende kode er utført? int tall = 5; tall = (tall*3) + 2; 1

b) Anta at følgende programsetninger utføres. Hva skrives ut på skjermen? int i = 11; int j = i; int k = 32; if (k > j * i k < i) { System.out.println("A"); else { if (k < j * i && k > i) { System.out.println("B"); else { System.out.println("C"); c) Hva skrives ut her? String sekv = "0"; for (int i=0; i<6; i++) { sekv = sekv + i; System.out.println ("sekv = " + sekv); Oppgave 2 (2+4 poeng) a) Gitt følgende kode. Hva returneres fra metodekallet rest (45,7)? int rest (int n, int m) { while (n >= m) { n-=m; return n; b) Anta at følgende program utføres: class Studentregister { public static void main (String[] args) { Student s = new Student ("Ole", "Karl Johans gt 1"); Student p = new Student ("Marit", "Karl Johans gt 2"); System.out.println (s.faanavn() + " og " + p.faanavn()); class Student { private String navn = Grete ; private String adresse = "Blindernveien 3"; public Student (String navn, String adresse) { this.navn = navn; this.adresse = adresse; // Programmet fortsetter på neste side 2

String faanavn() { return navn; Hva blir utskriften på skjermen? Svar med nummer for riktig alternativ. 1. Grete og Grete 2. Ole og Johan 3. Marit og Marit 4. navn og navn 5. Ole og Marit 6. s.fånavn() og p.fånavn() 7. Marit og Ole 8. Ingen av alternativene over Oppgave 3 (4 poeng) a) Skriv binærtallet 1001 som et desimaltall. b) Skriv desimaltallet 24 som et binærtall. c) Skriv summen av de to binærtallene 101 og 110 som et binærtall. d) Skriv det heksadesimale tallet 3F som et desimaltall. Oppgave 4 (5 poeng) Skriv en metode som tar inn tre parametre av typen double. Metoden skal returnere den største av de tre parameterverdiene. Kall metoden for finnstorst. Eksempel: double v = finnstorst(0, 10.2, 4.7); Dette vil føre til at v får tilordnet verdien 10.2. Oppgave 5 (8+7 poeng) a) Du skal skrive en metode med en int-array som parameter og som returnerer en int-array. Metoden skal opprette en ny int-array som er dobbelt så lang som den i parameteren, kopiere over verdiene i parameter-arrayen i første halvdel av den nye arrayen (og la de resterende verdiene i den nye arrayen være 0), og til slutt returnere den nye arrayen. b) 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 med flere strenger. 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 strengen i den andre parameteren, og returnere resultatet i en 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. 3

Oppgave 6 (2+3+15+10+15 poeng) Nedenfor er skissen til et program som først skal lese en fil med informasjon om endel kontakter (en kontakt består av et navn, en adresse og et telefonnummer) og deretter gå i løkke og be brukeren om et navn og skrive ut all kontaktinformasjon knyttet til dette navnet. import java.util.hashmap; class TelefonregisterMain { public static void main (String[] args) { Telefonregister tr = new Telefonregister (); tr.lesfrafil( kontakter.txt ); tr.snakkmedbruker (); class Telefonregister { private HashMap<String,Kontakt> h = new HashMap<String,Kontakt>(); // Her skal det ligge to objektmetoder: // lesfrafil og snakkmedbruker class Kontakt { private String navn, adresse, tlf; // Her skal det ligge en konstruktør og en utskriftsmetode a) Lag først konstruktøren i klassen Kontakt. Konstruktøren skal ha tre parametere (en for hver av objektvariablene i klassen) og skal benytte parameterverdiene til å initiere objektvariablene. b) Lag utskriftsmetoden i klassen Kontakt. Metoden skal hete skrivut og skal ikke ha noen parametere eller returverdi. Den skal skrive ut på skjermen verdiene til de tre objektvariablene i klassen. c) Lag metoden lesfrafil som skal ligge i klassen Telefonregister og som blir kalt på fra mainmetoden i klassen TelefonregisterMain. Metoden lesfrafil skal ha et filnavn som parameter og skal lese fra denne filen som antas å inneholde informasjon om et antall kontakter. Filen er en tekstfil som inneholder først tre linjer for den første kontakten, deretter tre linjer for den neste kontakten, osv. De tre linjene for en kontakt inneholder henholdsvis navn, adresse og telefonnummer (i den rekkefølgen). Hver kontakt skal representeres med et objekt av klassen Kontakt, og du skal benytte konstruktøren fra punkt a) når du oppretter nye Kontakt-objekter. Programmet skal legge kontaktene inn i HashMapen h (med navn som søkeord). d) Lag metoden snakkmedbruker som skal ligge i klassen Telefonregister og som blir kalt på fra main- metoden i klassen TelefonregisterMain. Metoden snakkmedbruker skal inneholde en evig løkke hvor hvert gjennomløp kun består i at programmet ber om og leser inn et navn fra terminal og deretter skriver ut på skjerm (ved hjelp av metoden skrivut) all informasjon knyttet til dette navnet (eller en feilmelding hvis navnet er ukjent). Programmet ditt skal nå utvides med en metode for å skrive ut adresselapper for utsending av julekort til alle kontakter dog med kun ett kort per husstand. Vi antar at alle som har identiske tekststrenger som sin adresse, er i samme husstand. Vi antar også at metoden snakkmedbruker vil bli utvidet til å 4

håndtere en kommando for å skrive ut slike adresselapper (du skal ikke gjøre endringer i snakkmedbruker, bare anta at det er på plass). e) Deklarer en klasse Husstand med et passende grensesnitt og innhold for å kunne holde rede på kontakter som bor på samme adresse. f) Skriv en ny objektmetode skrivadresser i klassen Telefonregister som oppretter og tar vare på objekter av klassen Husstand (ett for hver adresse i telefonregisteret), og deretter skriver ut på skjerm (i en senere versjon som ikke inngår i eksamen vil det skrives ut på fil) en tenkt adresselapp for hver husstand etter følgende mønster: En linje med hvert av navnene på den aktuelle adressen En avsluttende linje med husstandens adresse En blank linje Programmet vil ikke ha behov for Husstand-objektene etter at alle adresselappene er skrevet ut. Oppgave 7 (10 poeng) Skriv en metode med en tekststreng som parameter. Metoden skal skrive en rekke linjer ut på skjermen, etter følgende mønster: Første linje skal være den samme som teksten i parameteren. Linje to inneholder samme tekst som første linje, men det første tegnet skal stå sist, og de resterende tegnene skal flyttes en posisjon frem. Dette gjentas inntil første tegn på den siste linjen er det som var siste tegnet på den første linjen. Du stopper altså utskriften rett før du ville skrevet ut en linje som er maken til den første linjen. Oppgave 8 (10 poeng) Restaurant Den Sultne Akademiker ønsker å øke omsetningen. De tenker da å sette sammen en del informasjon de allerede har fra kundene; navn, kredittkortnummer, hvilke menyer de har bestilt og hvor mye maten kostet. Denne informasjonen supplerer restauranten så med informasjon de finner på internett, som adresse, yrke og skatteinformasjon fra skattelistene. Restauranten har så tenkt å lage månedens to-på-topp ved å gi et gratis måltid til både den gjesten som forrige måned har spist mest i forhold til sin skattbare inntekt og den som har brukt absolutt mest penger sist måned på Den Sultne Akademiker. Navnet på de to vinnerne vil bli lagt ut på hjemmesida til restauranten og tilskrevet personlig. Kan restauranten fritt lagre, bruke og offentliggjøre slike opplysninger? Redegjør kort for hvordan Personopplysningsloven regulerer denne typen bruk av persondata. Nevn de relevante paragrafene som bør tas med i vurderingen med begrunnelse for hvorfor de er relevante i denne sammenheng. 5