UNIVERSITETET I OSLO

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

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 Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

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

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

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Prøveeksamen høsten 2012

UNIVERSITETET I OSLO

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

Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

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

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

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

INF Uke 10. Ukesoppgaver oktober 2012

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

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

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

Oblig4 - forklaringer

Forelesning inf Java 4

UNIVERSITETET I OSLO

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

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

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

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

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

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

Framgangsmåte for å løse oblig 4 i INF1000

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)

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

Oblig4 - forklaringer. Arne og Ole Christian

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

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

PRØVEEKSAMEN (rettet versjon 27/11)

INF1000 : Forelesning 4

UNIVERSITETET I OSLO

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

Forelesning inf Java 5

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

Forelesning inf Java 5

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

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.

UNIVERSITETET I OSLO

TOD063 Datastrukturer og algoritmer

Oblig4 - forklaringer. Arne og Ole Christian

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

INF1000: noen avsluttende ord

INF1000 (Uke 4) Mer om forgreninger, While-løkker

UNIVERSITETET I OSLO

Repetisjon. INF gruppe 13

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

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

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

INF1000 (Uke 6) Mer om metoder, tekster

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

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

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

ALGORITMER OG DATASTRUKTURER

UNIVERSITETET I OSLO

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksempel på eksamen i : INF1000 Grunnkurs i objektorientert programmering Gjennomgås på forelesning: Torsdag 14. november 2013 Oppgavesettet er på: 11 sider Vedlegg : Ingen Tillatte hjelpemidler : Alle trykte og skrevne For hver oppgave er angitt det maksimale antall poeng du kan få hvis du svarer helt riktig. Summen av poengene er 171. Oversatt i tidsbruk tilsvarer hvert poeng grovt regnet ett minutt, slik at 10 poeng tilsvarer 10 minutters arbeid, osv. 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. Oppgave 1 (20 poeng) Er disse programlinjene lovlige i Java? JA NEI double x = 1/1/1; String s = 3.141 + 2.718; String s = 3.141 + 2.718 ; double i++ = 0; String double[] = { a, b, c ; double z = new double; while (int x < 10) {x = x + 1; String s = 10 + % ; int[][] p = new int[4][]; int i = 0; System.out.print(i = i); Oppgave 2 (16 poeng) a) Hvor mange ganger blir ABCD skrevet ut her: for (int i=0; i<15; i+=2) { System.out.println("ABCD"); Svar:... ganger 1

b) Hvor mange ganger blir ABCD skrevet ut her: int i = 0; while (++i * ++i < ++i) { System.out.println("ABCD"); Svar:... ganger c) Hvor mange ganger blir ABCD skrevet ut her: int i = 0; while (i < 10) { System.out.println("ABCD"); if (i > 0) { i = -i - 1; else { i = -i + 1; Svar:... ganger d) Hvor mange ganger blir ABCD skrevet ut her: int k = 5; for (int i = 0; k > 0; i++) { k = Math.max(0, k-i); System.out.println("ABCD"); Svar:... ganger Oppgave 3 (5 poeng) Anta at følgende kodelinjer utføres: double x = 3.14; int m = (int) (x-5); int k = m + m * m m; System.out.println( k = + k); Hva blir skrevet ut på skjermen? Svar:... 2

Oppgave 4 (10 poeng) Skriv ferdig metoden under, som skal finne alle negative verdier i x og returnere summen av disse. Hvis f.eks. arrayen x inneholder verdiene -3, 5, -18, 2, 18 og -12, så skal svaret som returneres være -33 (fordi -3-18-12 = -33). Dersom det ikke er noen negative verdier i x, eller arrayen x har lengde 0, eller x = = null, skal metoden returnere verdien 0. Svar: int finnsumnegative(int[] x) { Oppgave 5 (15 poeng) Betrakt følgende metode: int minfunksjon(int k, int x){ int sum = 0; int verdi = 2; for (int i=1; i<=k; i++) { sum += verdi * x; verdi *= verdi; return sum; Hvilken verdi returneres fra metodekallet minfunksjon(4,1)? Svar:... 3

Oppgave 6 (15 poeng) Skriv et fullstendig Java-program som ber brukeren om å oppgi et positivt heltall og som deretter leser inn dette tallet og skriver ut med ord hvilke sifre tallet har. Hvis f.eks. brukeren oppgir tallet 1532 skal altså programmet skrive ut: En Fem Tre To Svar: 4

Oppgave 7 (20 poeng) Restauranten PizzaKing har samlet inn data over et helt år som viser hvor mange pizzaer de solgte hver av dagene dette året. Disse dataene ligger i en array antallpizzaer som har lengde 365. Du skal anta at 1. januar var en mandag dette året, slik at antallpizzaer[0] er antall pizzaer som ble solgt mandag 1. januar, antallpizzaer[1] er antall solgte pizzaer tirsdag 2. januar, osv. Skriv en metode lagstatistikk som kan kalles slik: lagstatistikk(antallpizzaer); og som da skriver ut på skjermen en passe overskrift og deretter hvor mange pizzaer det ble solgt i gjennomsnitt hver mandag, tirsdag,..., søndag det aktuelle året. Hvis du synes det blir enklere kan du se bort fra årets siste dag, siden du da sitter igjen med data for 52 hele uker (364 = 7*52). Utskriften kunne starte slik (tallene er naturligvis bare eksempler og vil avhenge av verdiene i antallpizzaer): Salgsstatistikk for PizzaKing ---------------------------------- Mandag : 31.4 pizzaer solgt i gjennomsnitt Tirsdag : 63.2 pizzaer solgt i gjennomsnitt...... Hint: slå opp på s. 37 i læreboka hvis du vil bruke %-operatoren i denne metoden. Svar: 5 (Forts. neste side)

6

Oppgave 8 (20 poeng) Landet Utopia er i likhet med endel andre land (slik som USA) sammensatt av stater. Det er ialt 14 stater i Utopia, og hver av disse statene er igjen delt opp i et antall distrikter (antallet distrikter varierer fra 3 for de minste statene til 9 for den største staten). Hver stat har en statsregjering som består av alt fra 5 til 15 innbyggere fra dnne delstaten. En innbygger kan da ikke sitte i mer enn en statsregjering av gangen. Hvert distrikt har en distriktsregjering som består av 8 innbyggere. En innbygger i Utopia kan sitte i distriktsregjeringen for inntil tre distrikter på en gang (og muligens også i en statregjering). Hvert distrikt har en befolkning på inntil 1 million innbyggere. På grunn av uklare grenseoppganger mellom distriktene kan en innbygger i Utopia være innbygger i inntil tre distrikter på en gang (at de da må betale dobbel eller trippel skatt og avtjene verneplikt i flere distrikter ser ikke ut til å bekymre dem men dette er irrelevant for oppgaven). Hver stat i Utopia kan slutte en handelsallianse med så mange andre stater i Utopia de ønsker. Tegn et UML-klassediagram med de følgende (Java-) klassene som kan brukes til å lage en UML-modell av Utopia: Land, Stat, Distrikt, Statsregjering, Distriktsregjering, Innbygger og Handelsallianse. Gi navn på relasjonene mellom disse klassene slik det er beskrevet ovenfor og plassér antall på begge sider av hvert forhold. Gjør egne forutsetninger ved behov, men forklar isåfall disse. Svar: 7

Oppgave 9 (30 poeng) Under finner du skissen til et program som skal benyttes til å sensurere (erstatte) tvilsomme ord i en roman. Programmet skal først lese en liste med alle ordene som oppfattes som tvilsomme; disse ligger på filen sensurord.txt (du kan tenke deg at ordene i denne filen er atskilt med blanke tegn og/eller linjeskift). Deretter skal programmet lese filen roman.txt som inneholder teksten til en roman, sensurere alle tvilsomme ord og skrive resultatet til filen sensurertroman.txt. Sensuren skal bestå i at tvilsomme ord i romanen erstattes med første bokstav i ordet som skal fjerne og at hver av de øvrige bokstavene i ordet som fjernes, erstattes med en stjerne. Du kan anta at det kun benyttes små bokstaver i teksten, slik at du slipper å tenke på å konvertere store bokstaver til små eller liknende. Hvis f.eks. romanen består av linjene prøveeksamen stinker. jeg skulle gått på kino i stedet, eller tatt meg en ferie. og ordene stinker og ferie ligger i listen av tvilsomme ord, så skal resultatet bli prøveeksamen s******. jeg skulle gått på kino i stedet, eller tatt meg en f****. Skriv ferdig programmet under ved å skrive metodene lesulovligeord(...) og sensurertekst(...) i klassen Analyse. Du må også deklarere nødvendig datastruktur i klassen Analyse. Du kan lagre sensurordene enten i en HashMap (med sensurordene som nøkler) eller i en array; det første gir et noe kortere og enklere program. Hint: du bør tenke nøye gjennom hvordan du skal håndtere spesialtegn i teksten (komma, punktum og linjeskift) og kommentere hvordan den sensurerte teksten eventuelt vil avvike fra originalteksten med hensyn til tilstedeværelse av slike tegn. Svar: import easyio.*; import java.util.*; class Oppgave9 { public static void main (String[] args) { Analyse ana = new Analyse(); ana.lesulovligeord( sensurord.txt ); ana.sensurertekst( roman.txt, sensurert-roman.txt ); class Analyse { 8 (Forts. neste side)

9 (Forts. neste side)

10

Oppgave 10 (20 poeng) Landet Uqbar har innført akkurat samme Lov om behandling av personopplysninger som i Norge og du skal bruke denne loven til å vurdere følgende: På en bibliotek i Uqbar vil de lage et lite informasjonssystem om sine lånetagere, hvor de i tillegg til navn og adresse, vil lagre følgende opplysninger: Låntagernes alder, telefonnummer og e-post adresse. Hvilke bøker og videoer de har lånt de siste 5 årene. En tilhørende klassifikasjon av de bøkene og videoene som er lånt med kommentarer om hvilken type mennesker som pleier å låne disse bøkene. Biblioteket har dårlig råd og håper å selge disse opplysningene til ulike firmaer som driver direkte-reklame via e-post. Ved at de ulike låntagerne kan klassifiseres etter hvilke bøker de leser, håper biblioteket å tjene relativt godt på dette opplegget. Du skal nå drøfte om dette er greie opplysninger som biblioteket har rett til å samle inn eller om han må søke Datatilsynet i Uqbar om lov til dette. Begrunn svaret med å vise til konkrete paragrafer som du mener er relevante for dette registeret og de opplysningene biblioteket ønsker å samle inn, og hvorfor de ulike paragrafene du nevner er relevante. 11