Test 2 OOP. - Prøveeksamen

Like dokumenter
Løsningsforslag Test 2

UNIVERSITETET I OSLO

Eksamen Objektorientert Programmering 2011

INF Seminaroppgaver til uke 3

INF Løsning på seminaropppgaver til uke 8

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

INF Innleveringsoppgave 6

Obligatorisk oppgave 4: Lege/Resept

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

INF Obligatorisk innlevering 5

Objektorientert Programmering Ekstraordinær eksamen 2014

UNIVERSITETET I OSLO

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

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

TDT4100 Objektorientert programmering

TOD063 Datastrukturer og algoritmer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Seminaroppgaver IN1010, uke 2

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

INF1000: noen avsluttende ord

IN1010 V19, Obligatorisk oppgave 2

UNIVERSITETET I OSLO

IN Notat om I/O i Java

Eksamen i IBE102 Webutvikling Våren 2017.

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

UNIVERSITETET I OSLO

Obligatorisk oppgave 5: Labyrint

INF106 Objektorientert programmering

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

IN1010 V18, Obligatorisk oppgave 5

INF Notat om I/O i Java

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Introduksjon til objektorientert programmering

Eksamen i Internetteknologi Fagkode: IVA1379

UNIVERSITETET I OSLO

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

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

INF1010 våren januar. Objektorientering i Java

Eksamen Objektorientert Programmering 2013

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

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

INF1000 Prøveeksamen Oppgave 7 og 9

Informasjon Eksamen i IN1000 høsten 2017

INF100 INNLEVERING 3 HØSTEN 2004

Eksamen. Objektorientert Programmering IGR 1372

Endret litt som ukeoppgave i INF1010 våren 2004

UNIVERSITETET I OSLO

INF1010 Sortering. Marit Nybakken 1. mars 2004

Informasjon Prøveeksamen i IN1000 høsten 2018

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

Jentetreff INF1000 Debugging i Java

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

Sortering med Comparable og Comparator

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

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

UNIVERSITETET I OSLO

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

INF1000 Behandling av tekster

INF1000-SIKT - Notat om I/O i Java

Eksamen i Internetteknologi Fagkode: ITE1526

IN1010 våren januar. Objektorientering i Java

lfæ~~~~:::j~~:~l -.~=:~-t::-d I Alle trykte og håndskrevne EKSAMENSOPPGA VE Side l av 5 Eksamenstid:

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

OPPGAVE 5b og 8b Java Kode

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

HØGSKOLEN I SØR-TRØNDELAG

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

INF Uke 11. Ukeoppgaver oktober 2012

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

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

Å lese tall fra en fil, klassen Scanner

Videregående programmering 6

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

INF1000: Forelesning 6. Klasser og objekter del 1

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oblig 4Hybelhus litt mer tips enn i oppgaven

UNIVERSITETET I OSLO

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Transkript:

Test 2 OOP - Prøveeksamen 2007 - Viktig: Jobb med oppgavene som om det var eksamen Ikke snakk med sidemann, ta korte pauser, benytt kun skriftlige hjelpemidler du hadde tenkt til å hatt med på eksamen. Det er ingen vits i å lure deg selv!! Husk pseudokode, der dere står fast.

Oppgave 1 (30%) Forklar kort og presis. Benytt gjerne egne eksempler. Du må forklare med egne ord, og ikke skrive av! Oppgave 1.1 (5%) Hva er fordelen med å bruke interfaces? Oppgave 1.2 (5%) Hvorfor tillater ikke java multiple arv? Hvilke ulemper/fordeler har dette for språket? Oppgave 1.3 (5%) Forklar forskjellen mellom interface Comparable og Comparator. Hvilke fordeler har Comparator fremfor Comparable? Oppgave 1.4 (5%) Hvilke fordeler/ulemper er det ved å lagre til database fremfor filer? Oppgave 1.5 (5%) Hvordan er dynamiske datatrukturer organisert i java? Hvorfor bygger dette på arv? Oppgave 1.6 (5%) Hvorfor et det så stilig å programmere objektorientert ( dvs å skille programmet ut i mange klasser), og hva mener du er viktig å passe på når man lager klasser (svar gjerne i punktliste) Slutt Oppgave 1

Oppgave 2 (40%) Vi har nå lyst til å lage et automatisk (automagisk?) program som sender ut epost til personer på en mailingliste. Epostadressene er i en fil med navn receivers.dat, som er som følger: truls.trulsen@trulseland.no post@toreland.com kari.karisen@kariland.se osv (regner med at du har skjønt poenget nå..) Oppgave 2.1 (10%) Skriv en metode som leser inn dataene fra fil, og som returnerer en LenkaListe (epostadressene vil være lagt i lista som strenger): public LinkedList<String> lesinn(string filnavn) Oppgave 2.2 ( 10%) Vi har nå lyst å plukke ut et visst antall epostadresser som passer til et gitt regulærutrykk. Skriv en funksjon, som tar en liste med adresser, og et regexp-pattern og returnerer en liste med de som passet public LinkedList<String> filter(linkedlist<string> liste,string pattern) Oppgave 2.3 ( 10 %) a) Skriv kode som forsøker å sende en mail til e-postadresser i en liste. Koden skal ligge i funksjonen (id argumentet til funksjonen brukes i b-oppgaven): public void sendmail(linkedlist<string> liste,string id,string tittel,string melding,string fra) For å sende mail, kan du benytte funksjonen i den ferdige klassen Email (returnerer true om det gikk å sende, false ellers): public static boolean sendmail(string from,string to,string subject,string message)

b) Utvid koden slik at den skriver til en fil, som har navnet id.dat (altså id'n på mailen som skulle sendes): de mailadressene (en på hver linje) for alle mailer som ikke kunne sendes. Oppgave 2.4 ( 10%) Skriv et lite program som kan startes slik: java sentcheck mailid Programmet skal åpne fila som hører til aktuelle mailid ( altså fila som ble skrevet i oppgave 2.3b), og skrive ut antall eposter som ikke kunne sendes ( og hvilke de var) Slutt Oppgave 2

Oppgave 3 (30%) Vi skal nå ta utgangspunkt i programmet ConnectionMonitor2 som vi så på. Klassen er nå skrevet helt om, slik at den jobber helt av seg selv. Den vil sjekke url'ene ved hjelp av Threads ( dermed kan vi sjekke mange samtidig og uavhengig av hverandre) Klassen tilbyr nå følgende metoder: ConnectionMonitor(); registerserver(string url,int interval) Oppgave 3.1 (10%) Skisser hva som må gjøres for å legge til et lyttersystem, som forteller lytterne hvilken server og hvilket svar hver gang en sjekk ble utført. Lytteren bør ha en metode public void checkperformed(string url,boolean success) Oppgave 3.2 ( 10%) Vi ønsker at hver sjekk skal logges i en database. Skriv en klasse DBLogger, som "abbonenerer på" lytteren du laget i oppgave 1, som logger data i en databasetabell (ServerLogg) som ser slik ut: Tid Server Respons 2007-03-29 12:19:00 http://www.tomheine.net OK 2007-03-29 12:21:00 http://www.hiof.no IKKE OK 2007-03-29 12:22:00 http://www.tomheine.net OK 2007-03-29 12:22:00 http://www.hiof.no OK CREATE TABLE ServerLogg ( tid DATETIME, server VARCHAR(255), respons CHAR(10), PRIMARY KEY(tid,server) );

Oppgave 3.3 (10 %) Vi ønsker nå å printe ut disse dataene i ulike formater. Systemet er laget slik at det klarer å benytte ulike "printere" (dvs klasser som implementerer ett visst interface: ReportPrinter) Vi har en klasse som heter CreateReport, som har følgende metode public void printreport(reportprinter rp) Denne metoden gjør da all jobben for oss med selve printingen, forutsatt at ReportPritneren vi har lager formatterer rapporten. Interfacet ser slik ut: public intercafe ReportPrinter { //Metoden gir deg alle LoggLine-objektene for den spesielle url'en som hovedprogrammet vil lage en rapport for public String formatreport(arraylist<loggline> al,string url); } En loggline er definert som følger: public class LoggLine { public String date=""; public boolean ok=false; } Selve oppgaven er nå at du skal lage en klasse, som heter Reliability, som returnerer følgende tekst fra formatreport-metoden: Oppeprosent : xx % (altså hvor stor prosent av tiden var serveren OK)