EKSAMEN. Objektorientert programmering



Like dokumenter
EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

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

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

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

EKSAMEN. Algoritmer og datastrukturer

Eksamen Objektorientert Programmering 2013

Høgskoleni østfold EKSAMEN

Høgskoleni østfold EKSAMEN. ITF10213 Innføring i programmering (Høst 2013)

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

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

EKSAMEN (Konvertert fra en gammel PHPeksamen)

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

EKSAMEN med løsningsforslag

UNIVERSITETET I OSLO

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 10 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

EKSAMEN. Emne: Algoritmer og datastrukturer

INF1010 Arv. Marit Nybakken 2. februar 2004

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til Ant. oppgaver 6

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

EKSAMEN. Oppgavesettet består av 11 oppgaver med i alt 21 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

Emnenavn: Objektorientert programmering. Faglærer: Lars Emil Knudsen

Løsningsforslag. Oppgavesettet består av 9 oppgaver med i alt 20 deloppgaver. Ved sensur vil alle deloppgaver telle omtrent like mye.

Algoritmer og Datastrukturer

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

EKSAMEN. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

Høgskoleni østfold NY/UTSATT EKSAMEN

Løsningsforslag EKSAMEN

UNIVERSITETET I OSLO

TDT4102 Prosedyreog objektorientert programmering Vår 2016

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

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

EKSAMEN. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

Høgskoleni østfold EKSAMEN

Eksamen Objektorientert Programmering 2011

INF106 Objektorientert programmering

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

UNIVERSITETET I OSLO

EKSAMEN. Emne: Emnekode: Matematikk for IT ITF Dato: Eksamenstid: til desember Hjelpemidler: Faglærer:

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

UNIVERSITETET I OSLO

Høgskoleni østfold EKSAMEN. LSV1MAT12 Matematikk Vl: Tall, algebra og funksjoner 1

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

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

LC191D/LO191D Videregående programmering mai 2010

Løsningsforslag. Emnekode: Emne: Matematikk for IT ITF Eksamenstid: Dato: kl til kl desember Hjelpemidler: Faglærer:

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

UNIVERSITETET I OSLO

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

HØGSKOLEN I SØR-TRØNDELAG

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Høgskoleni østfold EKSAMEN. Emne: Innføring i programmering

INF1000 Metoder. Marit Nybakken 16. februar 2004

TDT4100 Objektorientert programmering

TDT Prosedyre- og objektorientert programmering

Høgskoleni østfold EKSAMEN. Hjelpem idler: Faglærer: Kåre Sorteberg Ingen hjelpemidler. Monica Kristiansen

TOD063 Datastrukturer og algoritmer

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

Høgskoleni østfold EKSAMEN. Ikke-programmerbar lommeregner uten grafisk skjerm Monica Nordbakke Marianne Maugesten

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

Kapittel 7: Mer om arv

UNIVERSITETET I OSLO

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

TOD063 Datastrukturer og algoritmer

EKSAMEN. Oppgavesettet består av 16 oppgaver. Ved sensur vil alle oppgaver telle like mye med unntak av oppgave 6 som teller som to oppgaver.

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

TDT4100 Objektorientert programmering

Transkript:

EKSAMEN Emnekode: ITF 10609 Dato: 13.mai 2009 Emne: Objektorientert programmering Eksamenstid: kl 09.00 til kl 12.00 Hjelpemidler: 2 A4-ark med valgfritt innhold på begge sider. Faglærere: Tom Heine Nätt Mari-Ann Akerjord Eksamensoppgaven: Oppgavesettet består av 6 sider, denne forsiden er ikke inkludert. Oppgavesettet består av 3 oppgaver og i alt 11 deloppgaver. Alle skal besvares. Ved sensur teller hver deloppgave omtrent like mye Oppgavesettet har 7 vedlegg: Vedlegg : Utdrag av javadokumentasjon av java.net.url java.lang.comparable java.util.comparator java.io.bufferedreader java.util.scanner java.util.arraylist java.util.collections Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene! Sensurdato: 5. juni 2009 Karakterene er tilgjengelige for studenter på studentweb senest 2 virkedager etter oppgitt sensurfrist. Følg instruksjoner gitt på: www.hiof.no/studentweb

Oppgave 1 Nedenfor ser du et utkast til en klasse Hovedstad. Foreløpig inneholder klassen bare deklarasjon av diverse objektvariabler. Denne oppgaven går ut på å ferdigstille klassen etter beskrivelse i deloppgavene som følger. public class Hovedstad { private String navn; private String land; private long innbyggertall; private double lengdegrad; private double breddegrad; Oppgave 1a Lag to konstruktører til klassen: Den ene konstruktøren skal initialisere alle objektvariablene. Den andre skal initialisere variablene navn, land og innbyggertall, og gi variablene bredde- og lengdegrad følgende standardverdier: breddegrad=58, lengdegrad=11. Oppgave 1b Lag en sett-metode for innbyggertall og en hent-metode for land. Oppgave 1c Lag en tostring-metode i klassen. Metoden skal returnere en kolon-separert streng med innhholdet i alle objektvariablene. Dersom standardverdiene for bredde- og lengdegrad er brukt, skal ikke disse vises. Eksempel på teksten som kommer ut fra tostring-metoden: Oslo:Norge:590000:59.9:10.7 Oppgave 1d Wikipedia-sidene til en hovedstad finnes på følgende URL: http://en.wikipedia.org/wiki/<hovedstad>, der <hovedstad> erstattes av navnet til den aktuelle hovedstaden. For eksempel finner vi Wikipediasidene til Oslo og Stockholm på følgende URL-er: http://en.wikipedia.org/wiki/oslo http://en.wikipedia.org/wiki/stockholm Lag en metode

public URL finnwiki() som finner og returnerer en URL til hovedstadens wikipedia-sider. Oppgave 1e Gjør om klassen Hovedstad slik at den blir Comparable. Den naturlige ordningen skal være på stigende innbyggertall, altså laveste innbyggertall først. Oppgave 1f Lag en Comparator med navn BreddegradComparator, som sorterer hovedstedene stigende etter breddegrad. 2

Oppgave 2 Nedenfor ser du et utdrag fra filen hovedsteder.txt. Hvert linje på filen inneholder følgende informasjon om en hovedstad: navn:land:innbyggertall:breddegrad:lengdegrad Oslo:Norway:580000:59.9:10.7 Stockholm:Sweden:1253309:59.3:18.1 Copenhagen:Denmark:1153615:55.7:12.6 Helsinki:Finland:558457:60.2:24.9 Berlin:Germany:3426354:52.5:13.4 London:United Kingdom:7421209:51.5:-0.1 Warsaw:Poland:1702139:52.2:21 Gaborone:Botswana:208411:-24.6:25.9 Antananarivo:Madagascar:1391433:-18.9:47.5 Lag et klientprogram hvor du: 1. For hver linje på filen hovedsteder.txt oppretter et Hovedstad-objekt og legger dette inn i en ArrayList. 2. Sorterer listen på innbyggertall. 3. Skriver ut all informasjon om hovedstaden som ligger på første posisjon i listen. 4. Sorterer listen på breddegrad 5. Skriver ut URL til hovedstaden som ligger på siste posisjon i listen nå 6. Itererer over alle elementene i listen og skriver ut navnet på landet til hver hovedstad. 3

Oppgave 3 For å gjennomføre resultatberegning for kurs med ulike evalueringsformer, er klassene Kurs, KursMedKarakter, KursUtenKarakter, KursMedBokstavKarakter og KursMedBestattIkkeBestatt laget. En skisse til disse er vist nedenfor: /** * Klassen Kurs representerer et generelt kurs med emnekode public abstract class Kurs { protected String emnekode; public String hentemnekode(){ return emnekode; public abstract String beregnresultat(); /** * For kurs uten karakter er resultatet "Deltatt" eller "Ikke deltatt", * avhengig av andel kursdager studenten har møtt. public class KursUtenKarakter extends Kurs{ private int antallkursdager; // Kursets varighet public String beregnresultat( ) { throw new UnsupportedOperationException("Not supported yet."); /** * Kurs hvor studenten får en karakter som beregnes ut fra prosentvis score * av antall mulige poeng. public abstract class KursMedKarakter extends Kurs{ protected int antallmuligepoeng; public abstract String beregnresultat( ); /** * Kurs med bokstavkarakter A-F. Karakter beregnes fra * prosentvis score. public class KursMedBokstavKarakter extends KursMedKarakter{ public String beregnresultat( ) { throw new UnsupportedOperationException("Not supported yet."); 4

/** * Kurs med karakter "Bestått" eller "Ikke bestått". Karakter beregnes fra * prosentvis score. public class KursMedBestattIkkeBestatt extends KursMedKarakter{ public String beregnresultat() { throw new UnsupportedOperationException("Not supported yet."); Det er lurt å lese hele oppgaveteksten før du går i gang med denne oppgaven. Særlig oppgave 3b og 3c bør sees i sammenheng. Oppgave 3b går ut på å legge til konstruktører til klassene, mens oppgave 3c går ut på å implementere metoden som gjennomfører resultatberegningen. Du må selv selv tenke gjennom hvilke objektvariabler du eventuelt trenger i tillegg til de som allerede er deklarert for å løse oppgaven. Du står altså fritt til å legge til innhold etter eget ønske i alle klassene. Oppgave 3a Lag et klassediagram (UML-diagram uten metoder og egenskaper) som illustrerer klassene slik de står nå, og hvor du tydelig får frem arverelasjonene mellom klassene. Oppgave 3b Ingen av klassene har så langt noen konstruktør. Legg til konstruktør i den/de klassene der du finner det hensiktsmessig. Oppgave 3c Metoden beregnresultat er definert i klassen Kurs. Hensikten med metoden er at den skal returnere en students resultat for et bestemt kurs basert på egenskaper i klassen. Implementer metoden beregnresultat i subklassene. Følgende regler gjelder: For kurs uten karakter er resultatet "DELTATT" eller "IKKE DELTATT", avhengig av andel kursdager studenten har møtt. Andel dager studentene må møte for å få "DELTATT" varierer fra kurs til kurs. For kurs med "BESTÅTT" eller "IKKE BESTÅTT" gis "BESTÅTT" hvis studenten oppnår mer enn en prosentvis andel av poengene. Poenggrensen varierer fra kurs til kurs. For kurs med bokstavkarakter gis en karakter fra A-F etter en skala som kan variere fra kurs til kurs. Oppgave 3d Denne deloppgaven kan besvares selv om du ikke har fått til de to foregående oppgavene. Anta at du i et program har en opprettet og fyllt opp en tabell med referanser av typen Kurs, dvs. du har følgende situasjon: Kurs [] minekurs = new Kurs[100]; // fyller opp tabellen. IKKE en del av denne oppgaven Referansene i tabellen kan referere til objekter av alle de konkrete klassene, det vil si at den inneholder referanser til objekter av typen KursMedBokstavKarakter, KursMedBestattIkkeBestatt og KursUtenKarakter. 5

Skriv kode som itererer over tabellen og som for hvert kurs skriver emnekode og kursresultat til skjerm. Hva kalles de objektorienterte prinsippene som er i sving her? 6

7