UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 (Uke 12) Sortering

UNIVERSITETET I OSLO

Eksamen H03, oppgave 2. INF1000 (Uke 13) Resten av eksamen H03 + del av V05. Oppgave 2.1. Oppgave 2.1 forts.

UNIVERSITETET I OSLO

PRØVEEKSAMEN (rettet versjon 27/11)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

PRØVEEKSAMEN (rettet versjon 27/11)

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

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

Det matematisk-naturvitenskapelige fakultet

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

INF Uke 10. Ukesoppgaver oktober 2012

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 oppgaver til uke 38 (17 sep 23 sep)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

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

UNIVERSITETET I OSLO

Gjennomgang av en tenkt eksamensoppgave

UNIVERSITETET I OSLO

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel

Ukeoppgaver INF1000: 12. feb 16. feb

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

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

Gjennomgang av en tenkt eksamensoppgave

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

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) Løsningsforslag

UNIVERSITETET I OSLO

Forelesning inf Java 4

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

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

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

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

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

INF1000: Forelesning 6. Klasser og objekter del 1

Løsningsforslag til eksamen i INF1000 våren 2006

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oblig4 - forklaringer. Arne og Ole Christian

INF1000: noen avsluttende ord

Endret litt som ukeoppgave i INF1010 våren 2004

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

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

Uke 8 - Oppramstyper, HashMap og Innstikksortering, litt javadoc. 17. oktober 2013, Arne Maus Inst. for informatikk, UiO

Blokker og metoder INF1000 (Uke 6) Metoder

Løsningsforslag INF desember 2007

TDT4100 Objektorientert programmering

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Fredag 5. desember 2003 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler : INF1000 Grunnkurs i objektorientert programmering 11 sider Ingen Alle trykte og skrevne Les gjennom hele oppgaven før du begynner å løse oppgaven. Kontroller at oppgavesettet er komplett før du begynner å besvare det. Dersom du savner opplysninger i oppgaven, kan du selv 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 forutsetningene og antagelsene du gjør. Dine svar skal skrives på disse oppgavearkene, og ikke på separate ark. Dette gjelder både spørsmål med avkrysningssvar og spørsmål hvor du bes om å skrive programkode. I de oppgavene hvor det skal skrives programkode, anbefales det at du først skriver en kladd på eget ark før du fører svaret inn i disse oppgavearkene på avsatt plass. Endel av spørsmålene er flervalgsoppgaver. Sett da kryss for alle riktige alternativer. På disse oppgavene får du poeng etter hvor mange avkrysningbokser som stemmer overens med fasiten (dvs som har kryss når fasitsvaret er kryss og som står tomme når fasitsvaret er at det skal stå tomt). Hvis du har satt et kryss i en avkrysningsboks og etterpå finner ut at du ikke ønsket et kryss der, kan du skrive "FJERN" like til venstre for avkrysningsboksen. Husk å skrive såpass hardt at besvarelsen blir mulig å lese på alle gjennomslagsarkene, men ikke legg andre deler av eksamensoppgaven under når du skriver. Oppgave 1 (forslag til tidsbruk: 45 min 60 min) 1) Hvilke utsagn er riktige om en variabel deklarert i en objektmetode? Før vi foretar en tilordning til variabelen har den ingen verdi Den kan ha en aksessmodifikator (f.eks. private eller public) Andre objektmetoder i samme klasse har tilgang (aksess) til variabelen Objektmetoder i andre klasser har tilgang (aksess) til den via prikk-notasjon 2) Hvilke utsagn er riktige om en objektvariabel? Før vi foretar en tilordning til variabelen har den ingen verdi Den kan ha en aksessmodifikator (f.eks. private eller public) Objektmetoder i samme klasse har tilgang (aksess) til variabelen Objektmetoder i andre klasser har tilgang (aksess) til den via prikk-notasjon dersom variabelen er deklarert som public. 1

3) Hvor mange heltall settes det av plass til (dvs hva er lengden på arrayen vi får) når programsetningen her utføres: int[] tallene = new int[100]; Det settes av plass til 99 heltall Det settes av plass til 100 heltall Det settes av plass til 101 heltall 4) Anta at vi har følgende programsetninger: for (int i = 0; i < 100; i++) { for (int j = 0; j < 99; j++) { System.out.println("Eksamen"); Hvor mange ganger skrives teksten "Eksamen" ut? Svar:... 5) Anta at vi har følgende programsetninger: for (int i = 0; i < 3; i++) { for (int j = 0; j <= i; j++) { System.out.println("INF 1000"); Hvor mange ganger skrives teksten "INF 1000" ut? Svar:... 6) Et program inneholder blant annet følgende programsetninger: int alder = 4; int nyalder = alder--; alder += nyalder; alder++; Hvilken verdi har variabelen alder like etter at setningene over er utført? Svar:... 2

7) Anta at vi har et program hvor en av klassene blant annet har følgende objektvariabeldeklarasjon: HashMap personer = new HashMap(); Klassen inneholder blant annet metoder for å legge inn objekter av klassen Person (med en passende nøkkel, f.eks. fødselsnummer) i HashMapen og for å løpe gjennom alle Personobjektene i HashMapen. Sistnevnte metode, som skal kalle på en metode skrivut() i hvert av objektene i HashMapen, ser slik ut: void skrivalle() { Iterator liste = personer.values().iterator(); while (liste.hasnext()) {... b.skrivut(); Innholdet i while-løkken ovenfor er ikke ferdig utfylt. Hvilke(n) av følgende alternativer kan vi erstatte... med slik at metoden virker slik den skal? Person b = it.next(); Person b = (Person) it.next(); Person b = liste.next(); Person b = (Person) liste.next(); Bil b = (Bil) it.next(); Ingen av alternativene ovenfor 8) Anta at følgende programsetninger utføres: 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 ); Hva skriver setningene over ut på skjermen? A B C AB Det skrives ikke ut noen ting 3

9) Anta at følgende array er deklarert i en metode i et program: int[] a = new int[77]; Anta at arrayen deretter er fylt opp med verdier som ble lest fra en fil, og at følgende variabeldeklarasjon foretas: int sum = 0; Hvilke(n) av alternativene under vil nå gi som resultat at variabelen sum inneholder summen av alle verdiene i arrayen a? int i = 0; while (i < a.length) { sum = a[i]; i++; int i = 0; while (i < a.length) { sum += a[i]; int i = 0; while (i < a.length) { sum += a[i]; i++; int i = 0; while (i++ < a.length) { sum += a[i-1]; for (int i = 0; i < a.length; i++) { sum += a[i]; for (int i = 1; i <= a.length; i++) { sum += a[i-1]; for (int i = 0; i < a.length; ++i) { sum = sum + a[i]; 10) Anta at følgende programsetninger utføres: int i = 11; int k = i/3; Hvilken verdi får variabelen k? k får verdien 3 k får verdien 3,67 k får verdien 4 ingen av alternativene over 4

11) Anta at vi har deklarert følgende objektmetode i en klasse: void dobleverdi(int k) { k = k * 2; I en annen objektmetode i samme klasse har vi følgende programsetninger: int k = 12; dobleverdi(k); System.out.println("Verdien til k er " + k); Hva skrives ut i den siste setningen ovenfor? Verdien til k er 12 Verdien til k er 24 Verdien til k er 6 12) 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.fåNavn() + " og " + p.fånavn()); class Student { String navn = Grete ; String adresse = "Blindernveien 3"; Student (String navn, String adresse) { this.navn = navn; this.adresse = adresse; String fånavn() {return navn; Hva blir utskriften på skjermen? Grete og Grete Ole og Ole Marit og Marit navn og navn Ole og Marit s.fånavn() og p.fånavn() Marit og Ole Ingen av alternativene over 5

Oppgave 2 (forslag til tidsbruk: 2 t 2t 15 min) 1) Metoden nedenfor har to parametre: en heltallsarray a og et heltall k. Metoden skal telle opp hvor mange verdier i a som er lik k, og skal returnere dette antallet. Fyll inn innholdet i metoden: int finnantall(int[] a, int k) { 2) Tenk deg at du skal lage et datasystem for en idrettsklubb. Systemet skal inneholde diverse informasjon om medlemmene i klubben. For hvert medlem skal systemet inneholde opplysninger om: navn, adresse, fødselsnummer (11 siffer), telefonnummer, statsborgerskap, yrke og sivil stand (ugift/gift/samboer). Kan et slikt system tas i bruk uten konsesjon? Ja Nei, fordi følgende paragrafer i personvernloven er relevante (har du ikke paragrafnummerne, kan du si hvilke problemer de relevante paragrafene omhandler):... 6

3) Metoden nedenfor skal skrive ut verdiene til de to parametrene på hver sin linje slik at den som er alfabetisk først kommer på første linje, og den som er alfabetisk sist kommer på neste linje. Fyll inn innholdet i metoden: void skrivutsortert(string tekst1, String tekst2) { 4) På neste side ser du et uferdig program for å holde orden på nettsteder (dvs internett-sider). For hvert nettsted skal programmet lagre navnet på nettstedet (f.eks. "Hjemmesiden til INF1000"), nettadressen (f.eks. "http://www.ifi.uio.no/inf1000"), og en tekstlig beskrivelse av nettstedet (f.eks. "Dette nettstedet er nyttig for alle som følger kurset INF1000"). Programmet skal ha funksjonalitet for å legge inn informasjon om et nytt nettsted, fjerne informasjon om et nettsted, og skrive ut en oversikt over alle lagrede nettsteder. Programmet så langt ser ut som på neste side. Selve spørsmålene til denne deloppgaven (4-A, 4-B og 4-C) finner du etter programmet. 7

import easyio.*; import java.util.*; class NettstedProg { public static void main (String[] args) { NettstedOversikt no = new NettstedOversikt(); no.ordreløkke(); class NettstedOversikt { In tastatur = new In(); HashMap nettsteder = new HashMap(); int lesordre() { int k = 0; while (k < 1 k > 4) { System.out.println("1: Legg inn nytt nettsted"); System.out.println("2: Fjern nettsted"); System.out.println("3: Lag oversikt over nettsteder"); System.out.println("4: Avslutt"); k = tastatur.inint(); return k; void ordreløkke() { boolean fortsett = true; while (fortsett) { switch (lesordre()) { case 1: legginnsted(); break; case 2: fjernsted(); break; case 3: lagoversikt(); break; case 4: fortsett = false; voi d legginnsted() { // Les navn, nettadresse og beskrivelse fra terminal, opprett nytt Nettsted-objekt og legg det inn // i HashMapen 'nettsteder' med adressen som nøkkel. void fjernsted() { // Les en tekststreng fra terminal. Gå så gjennom alle nøklene i HashMapen nettsteder for å // finne alle de nettstedene med nettadresse som enten inneholder tekststrengen eller er identisk // med tekststrengen. For hvert slikt nettsted skal programmet spørre brukeren om det skal // slettes, og hvis brukeren svarer ja så slettes nettstedet fra HashMapen nettsteder. Leses // f.eks. tekststrengen uio.no så skal programmet i tur og orden presentere for brukeren hvert // nettsted med uio.no i sin nettadresse og spørre om nettstedet skal fjernes fra registeret. void lagoversikt() { // Løp gjennom alle nettstedene som er lagret og skriv ut innholdet av hver dem. class NettSted { private String navn; private String nettadresse; private String beskrivelse; NettSted(String navn, String nettadresse, String beskrivelse) { this.navn = navn; this.nettadresse = nettadresse; this.beskrivelse = beskrivelse; void skrivut() { System.out.println("Navn: " + navn); System.out.println("Nettadresse: " + nettadresse); System.out.println("Beskrivelse: " + beskrivelse); 8

4-A) Skriv ferdig metoden legginnsted() ved å fylle inn resten nedenfor: void legginnsted() { System.out.print("Navn: "); String navn = tastatur.inword("\n"); System.out.print("Adresse: "); String adresse = tastatur.inword("\n"); System.out.print("Beskrivelse: "); String beskr = tastatur.inword("\n"); 4-B) Skriv ferdig metoden lagoversikt() ved å fylle inn nedenfor: void lagoversikt() { 9

4-C) Skriv ferdig metoden fjernsted() ved å fylle inn nedenfor: void fjernsted() { System.out.print("Adresse: "); String adresse = tastatur.inword("\n"); 10

5) (Denne oppgaven bør tas til slutt). Metoden nedenfor skal uten bruk av array - skrive ut verdiene til de tre parametrene på hver sin linje i stigende rekkefølge. Metoden skal først bytte om på verdiene i a, b og c slik at a b c, og deretter skrives innholdet av a, b og c ut (i den rekkefølgen, og på hver sin linje). Fyll inn innholdet i metoden: void SkrivUtSortert2 (int a, int b, int c) { 11