UNIVERSITETET I OSLO

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

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

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 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

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

UNIVERSITETET I OSLO

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

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

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen i INF1000 våren 2006

Forelesning inf Java 5

Forelesning inf Java 5

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 1000 høsten 2011 Uke 11: 2. november

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 Behandling av tekster

UNIVERSITETET I OSLO

INF 1000 høsten Innhold uke 11. Digital representasjon av tekster, tall, former,

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

INF1000 (Uke 6) Mer om metoder, tekster

UNIVERSITETET I OSLO

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

UNIVERSITETET I OSLO

Blokker og metoder INF1000 (Uke 6) Metoder

Oppgave 1 (Programtolkning) INF1000 Eksamen V06. Oppgave 1 (Programtolkning) Oppgave 1 (Programtolkning)

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)

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

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

UNIVERSITETET I OSLO

PRØVEEKSAMEN (rettet versjon 27/11)

Forelesning inf Java 4

Gjennomgang av eksamen H99

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

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

UNIVERSITETET I OSLO

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

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

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

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

UNIVERSITETET I OSLO

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

Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

INF1000 oppgaver til uke 38 (17 sep 23 sep)

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

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

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

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

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

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

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

Gjennomgang av en tenkt eksamensoppgave

Endret litt som ukeoppgave i INF1010 våren 2004

UNIVERSITETET I OSLO

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

Gjennomgang av en tenkt eksamensoppgave

Løsningsforslag INF desember 2007

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

TOD063 Datastrukturer og algoritmer

INF1000 (Uke 6) Mer om metoder, tekster

Seminaroppgaver IN1010, uke 2

Orakeltjeneste på Abel Hjelp til Obligatorisk oppgave 2. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. Rep: Metoder

Oblig4 - forklaringer. Arne og Ole Christian

En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 10. juni 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: Innhold Ingen Alle Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. 1 Kortsvarsoppgave (vekt 30%) side 1 2 Geografikunnskaper (vekt 30%) side 4 3 DNA-sekvenser (vekt 40%) side 5 Oppgave 1 Kortsvarsoppgave (vekt 30%) Denne oppgaven består av flere små deloppgaver, som hver teller like mye i vurderingen. 1a Studer koden nedenfor: class SkrivHei { public static void main (String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 2; j ++) { i = i + 4; System.out.println("hei"); Hvor mange ganger blir teksten hei skrevet ut når programmet SkrivHei kjøres? (Fortsettes på side 2.)

Eksamen i INF1000, 10. juni 2005 Side 2 1b Hva skrives ut på skjermen når programmet nedenfor kjøres? class EnkelRegning { public static void main(string[] args) { int a = 4; int b = 9; a = b; b++; System.out.println("a = " + a); System.out.println("b = " + b); 1c Hva skrives ut på skjermen når programmet nedenfor kjøres? class SkrivUt2{ public static void main (String[] args){ String s = "abcdefghijklm"; String t = s.substring(0,3); System.out.println("t er nå:" + t); int lengde = s.length(); int kvart = lengde/4; int halv = lengde/2; String u = s.substring(halv - kvart, halv + kvart); System.out.println("u er nå:" + u); if (s.indexof("def")>(-1)) { System.out.println("deF finnes"); else { System.out.println("deF finnes ikke"); if (s.endswith("klm")){ System.out.println("s ender med klm"); 1d Hva skrives ut på skjermen når programmet nedenfor kjøres? class Beregninger{ public static void main(string[] args){ int x = 9; int y = 3; (Fortsettes på side 3.)

Eksamen i INF1000, 10. juni 2005 Side 3 int z = x - y; System.out.println("verdien til z er " + z); if ((x-z) == y){ System.out.println("like"); else { System.out.println("ulike"); if ((x > 8) (y < 2)){ System.out.println("sann"); else{ System.out.println("usann"); x++; y += x; int d = --x + y--; System.out.println("d = " + d); 1e Hva skrives ut på skjermen når programmet nedenfor kjøres? class WhileTest { public static void main (String[] args) { boolean fortsett = true; int k = 3; while (fortsett) { k += 3; fortsett =!fortsett; System.out.println("k = " + k); 1f Studer kodelinjene nedenfor: int[] a = new int[50];... // fyller inn tall i arrayen a int s = 1; for (int i = 0; i < a.length; ++i) s *= a[i]; Hva blir innholdet i variabelen s etter at denne koden er utført? (Fortsettes på side 4.)

Eksamen i INF1000, 10. juni 2005 Side 4 1g Studer koden for klassen Person: 1 class Person [ 2 int navn; 3 int alder; 4 String adresse; 5 6 public Person (String n, int a, String adr) { 7 navn = n; 8 alder = a; 9 adresse = adr; 10 11 ] Finn og korriger alle feil i denne koden. Referer til linjenummer der du vil gjøre rettinger eller tillegg i koden. Oppgave 2 Geografikunnskaper (vekt 30%) Denne oppgaven består av to deloppgaver, som hver teller like mye i vurderingen. En lærer i geografi vil teste sine elevers kunnskaper. Han har derfor laget et java-program hvor hver elev skal registrere navn på byer og land som hun kjenner til. For hvert sted (både by og land) skal det også registreres folketall. Du skal hjelpe geografilæreren med å gjøre programmet hans ferdig. For å få oversikt over problemet, starter du med å sette deg inn i koden hans som består av de tre klassene vist i figurene 1, 2 og 3 på side 7 8. 2a Lag et UML klassediagram av programmet som består av de tre klassene vist i figurene 1, 2 og 3 på side 7 8. 2b Programmet mangler utskriftrutiner slik at læreren fort kan få oversikt over hvilke opplysninger en elev har registrert. Lag en utskriftrutine som skriver ut opplysninger om alle byer i hvert land under hverandre på skjermen, slik det er illustrert i eksempelet nedenfor. For land der det ikke er registrert tilhørende byer, skrives bare landsinformasjonen ut. For å løse dette problemet må du skrive kode i klassene By, Land og Geografikunnskaper. (Fortsettes på side 5.)

Eksamen i INF1000, 10. juni 2005 Side 5 Eksempel på utskrift: Norge 4525000 ************************ Oslo 530000 Moss 26000 Narvik 19000 Hamar 26500 ************************ Sverige 9040000 ************************... Oppgave 3 DNA-sekvenser (vekt 40%) NB! Legg merke til at i denne oppgaven teller deloppgavene a og b 10% hver, mens punkt c teller 20%. Denne oppgaven tar utgangspunkt i et problem hentet fra molekylærbiologi, men for å løse oppgaven trenger du kun å tenke på tekststrenger bestående av et gitt antall symboler (tegn). 3a (vekt 10%) DNA-sekvenser representeres ved hjelp av 4 symboler: A, T, C og G. I mange tilfeller vil det være interessant å vite den relative frekvensen til hvert av symbolene i en DNA-sekvens. Du skal nå lage en metode som teller opp antall forekomster av hvert symbol i en gitt DNAsekvens og regner ut den tilhørende relative frekvensen. Eksempel: Gitt DNA-sekvensen AATGGATC. Denne sekvensen består av 8 symboler, hvorav 3 forekomster av A. Dermed er den relative frekvensen av A i sekvensen 3/8 = 0, 375. Skriv metoden symbolfrekvens som tar en String som parameter og returnerer en array med 4 verdier (frekvensen til A, frekvensen til T, frekvensen til C, frekvensen til G): double[] symbolfrekvens(string sekvens) {... 3b (vekt 10%) Lag en klasse DNAsekvens som inneholder følgende informasjon: navnet på sekvensen, (Fortsettes på side 6.)

Eksamen i INF1000, 10. juni 2005 Side 6 selve sekvensen, lengden på sekvensen (antall symboler), frekvensen av A, T, C og G. Lag en konstruktør i klassen slik at et nytt DNAsekvens objekt kan opprettes ved kodesetningen DNAsekvens a = new DNAsekvens(navn,sekvens); der argumentene navn og sekvens begge er av type String. 3c (vekt 20%) Anta at du har en fil DNA.txt hvor første linje forteller hvor mange DNA-sekvenser det er i filen, mens hver av de resterende linjene i filen beskriver en sekvens. Hver linje starter med navnet på sekvensen, deretter et mellomrom (ett eller flere blanke tegn), og så selve sekvensen. Eksempel på filen DNA.txt : 137 AY1231 AY5432 AY3234 AY3423... AAATCAGAAG GGAATCCAGTAAAA GGAGTCGATGA GGAGTCGATCCCAGA Lag en metode DNAsekvens[] lessekvenserfrafil (String filnavn) {... som leser inn alle DNA-sekvensene i en array bestående av DNAsekvens-objekter. Denne arrayen returneres fra metoden. (Fortsettes på side 7.)

Eksamen i INF1000, 10. juni 2005 Side 7 Programkode for oppgave 2 1 import java.util.*; 2 3 class Geografikunnskaper { 4 HashMap LandOversikt = new HashMap(); 5 6 void leggtilland(string navn, int innbyggertall) { 7 Land land = new Land(innbyggertall); 8 LandOversikt.put(navn, land); 9 10 11 void leggtilbyiland(string navnland, String navnby, 12 int innbyggertall, boolean hovedstad) { 13 boolean finnes = LandOversikt.containsKey(navnLand); 14 if (!finnes) { 15 Land land = new Land(0); 16 LandOversikt.put(navnLand,land); 17 18 19 Land nland = (Land) LandOversikt.get(navnLand); 20 21 nland.leggtilby(navnby, innbyggertall, hovedstad); 22 23 24 public static void main(string args[]) { 25 Geografikunnskaper geo = new Geografikunnskaper(); 26 27 geo.leggtilland("norge", 4525000); 28 geo.leggtilland("sverige",9040000 ); 29 geo.leggtilbyiland("norge", "Oslo",530000, true); 30 geo.leggtilbyiland("norge", "Moss", 26000, false); 31 geo.leggtilbyiland("norge", "Narvik", 19000, false); 32 geo.leggtilbyiland("norge", "Hamar", 26500, false); 33 34 // Anta at programmet senere skal utvides slik at elever 35 // kan legge inn informasjon om nye land og byer ved bruk 36 // av meny og inntasting på skjermen. NB! Dette skal ikke 37 // lages nå. 38 39 // Her skal du sørge for at alle byer i alle land blir 40 // skrevet ut på skjermen. 41 42 Figur 1: Klassen Geografikunnskaper i Oppgave 2. (Fortsettes på side 8.)

Eksamen i INF1000, 10. juni 2005 Side 8 1 class Land{ 2 int innbyggertall; 3 HashMap Byer = new HashMap(); 4 5 Land(int innbyggertall) { 6 this.innbyggertall = innbyggertall; 7 8 9 void leggtilby(string navn, int innbyggertall, 10 boolean hovedstad) { 11 By by = new By(innbyggertall, hovedstad); 12 Byer.put(navn, by); 13 14 15 void skrivutalleland() { 16 // Denne metoden skal du skrive i oppgave 2b 17 18 Figur 2: Klassen Land i Oppgave 2. 1 class By{ 2 int innbyggertall; 3 boolean hovedstad; 4 5 By(int innbyggertall, boolean hovedstad) { 6 this.innbyggertall = innbyggertall; 7 this.hovedstad = hovedstad; 8 9 10 void skrivut() { 11 // Denne metoden skal du skrive i oppgave 2b 12 13 Figur 3: Klassen By i Oppgave 2. SLUTT PÅ OPPGAVESETTET