INF106 Objektorientert programmering



Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

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

Eksamensoppgave i IFUD1025 Programmering i Java

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgave Vår 2012 Ordinær eksamen Bokmål. Videregående programmering. Eksamensdato: Studium/klasse: 2. klasse

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

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

UNIVERSITETET I OSLO

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

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

OPPGAVE 5b og 8b Java Kode

EKSAMEN. Objektorientert programmering

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens tema Kapittel 8: Objekter og klasser

UNIVERSITETET I OSLO

Endret litt som ukeoppgave i INF1010 våren 2004

UNIVERSITETET I OSLO

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

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Objektorientert Programmering Ekstraordinær eksamen 2014

ANTDAGER = 358; I Ifra nyttår 08 til 08 1ed julaften

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF1000: noen avsluttende ord

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

LO191D/LC191D Videregående programmering

Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1. F ntall oppga~ forsiden): ;;;handskr~vn-;

Løsningsforslag til eksamen i INF1000 våren 2006

EKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG ENTREPRENØRSKAP

Introduksjon til objektorientert programmering

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

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

UNIVERSITETET I OSLO

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Eksamen Objektorientert Programmering 2011

Eksamen Objektorientert Programmering 2013

INF1000: Forelesning 6. Klasser og objekter del 1

UNIVERSITETET I OSLO

INF Objektorientert programmering. Datastrukturer i Java Klasser med parametre

Gjennomgang av eksamen H99

TDT4100 Objektorientert programmering

EKSAMEN. Algoritmer og datastrukturer

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

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

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

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

Eksamen Objektorientert Programmering 2012

Informasjon Prøveeksamen i IN1000 høsten 2018

Informasjon Eksamen i IN1000 høsten 2017

INF1000 oppgaver til uke 38 (17 sep 23 sep)

INF våren 2017

INF1000 Prøveeksamen Oppgave 7 og 9

UNIVERSITETET I OSLO

Kontinuasjonseksamen

2 Om statiske variable/konstanter og statiske metoder.

TDT4100 Objektorientert programmering

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

Transkript:

Eksamensoppgave Høst 2010 Ordinær Bokmål Fag: INF106 Objektorientert programmering Eksamensdato: 13.12.2010 Studium/klasse: 1. klasse Emnekode: INF106 Eksamensform: Skriftlig Antall sider: 5 (inkludert denne) Antall vedlegg: 0 Eksamenstid: 09:00-13:00 Fagansvarlig: Hjelpemidler: Rune Bostad, Owe Johansen Lærebok Programmering i Java av Else Lervik, Vegard B. Havdal Sensurfrist: 03.01.2011

Generell informasjon: Les gjennom oppgavesettet før du begynner med programmeringen. Pass på at du gjør det oppgavene etterspør (verken mer eller mindre). Men dersom du trenger flere metoder/konstruktører for å lage metodene oppgavene spør etter, skal du programmere disse. Dersom du mener det mangler opplysninger i oppgaveteksten skal du sette dine egne forutsetninger (skriv da opp forutsetningene i besvarelsen).

Oppgave 1 (20%) Følgende Bil-klasse er definert public class Bil { private String private int navn_ = null, regnr_ = null; motoreffektkw_; public Bil ( String navn, String regnr, int motoreffektkw ) { navn_ = navn; regnr_ = regnr; motoreffektkw_ = motoreffektkw; public int getmotoreffektkw() { return motoreffektkw_; public String getregnr() { return regnr_; public String getnavn() { return navn_; @Override public String tostring() { return navn_ + "\nregistreringsnummer:\n\t " + regnr_ + "\nmotor effekt (KW):\n\t" + motoreffektkw_; Skriv kode for en main metode som oppnår følgende: a) Oppretter en liste som inneholder 3 bil-objekter b) Skriver ut informasjon for alle biler i listen c) Skriver ut informasjon om navn og motoreffekt i hestekrefter for alle biler i listen Motoreffekt i klassen er gitt i enheten KW. 1 HK er definer som ca. 0.7355 KW, altså har vi: KW 0.7355 HK HK KW / 0.7355 d) Hvordan blir utskriften fra deloppgave c) presentert i en terminal/ledetekst?

Oppgave 2 (ca 80%) Politikerne i en by har vedtatt nye regler for bomringen rundt byen. Hensikten er todelt: På den ene siden ønsker man å redusere luftforurensningen og på den andre siden å bedre folks helse ved å premiere de som sykler/går. Premieringen skjer ved at de får utbetalt en del av pengene som er kommet inn på bomstasjonene (fra de som kjører bil eller tar buss). Innbyggerne betaler pr. passering gjennom bomringen. De kan inngå én av følgende tre avtaler med bompengeselskapet: 1. Avtale Bilist Her betales en fast pris pr. passering uavhengig av antall passeringer i måneden. Prisen er 20 kr for hver passering. 2. Avtale Kollektivist I denne avtalen inngår svært billig månedskort for byens kollektivtrafikk. (Vi fokuserer ikke på månedskortene i denne oppgaven.) Dersom en person med denne avtalen likevel må kjøre bil en dag, skal han betale etter følgende regler: Han får et visst antall passeringer pr måned til en fast, relativt høy, pris. Deretter øker prisen med 20 prosent for hver passering. Eksempel: De fem første passeringene koster 20 kr hver. Passering nr 6 koster kr 20,00 * 1,20 = kr. 24,00. Passering nr 7 koster kr 20,00 * 1,40 = kr. 28,00. Passering nr 8 koster kr 20,00 * 1,60 = kr. 32,00... osv... 3. Avtale Syklist Disse personene forplikter seg til å sykle eller gå. De tjener opp såkalte miljøpoeng avhengig av antall ganger de sykler/går til byen. (Vi ser bort fra at noen jukser). Hver gang de passerer en bomstasjon får de 2 miljøpoeng. Hver gang systemet foretar avregning, får disse personene en viss prosentdel av bompengene som er betalt inn (men vi skal ikke regne ut dette i denne oppgaven). Disse pengene fordeles etter antall miljøpoeng den enkelte har opptjent. Hvis en person i denne kategorien kjører bil, må han/hun betale dobbelt så mye som en Kollektivist.

Figuren viser et klassetre som modellerer de ulike avtalene. Hver avtale har et entydig nummer. Dette skal være en static variabel som økes med 1 hver gang et nytt objekt blir laget. (Dette gir entydighet, men ingen garanti for at alle nummer er i bruk.) I tillegg til nummeret skal vi lagre kun epostadressen til kunden. Epostadressen vil selvfølgelig være entydig. (Vi lagrer altså verken andre personopplysninger for enkelhets skyld). Klassen Avtale skal ha følgende datamedlemmer: int avtalenr; // entydig String epost; // entydig double saldo; // skyldig beløp int antpasseringer; // økes med 1 for hver passering Om du finner det hensiktsmessig for å løse oppgavene, kan du utvide denne listen. Programmer de fire klassene etter følgende spesifikasjoner: Alle klassene skal ha konstruktører som tar epost-adressen som argument. En klient skal kunne hente ut verdiene til alle datamedlemmene, men bare saldo og antpasseringer skal kunne forandres etter at et objekt er opprettet. Det må være mulig å registrere en passering gjennom bomringen. Da skal saldoen økes i henhold til reglene gitt foran. Klassen Syklist skal vedlikeholde antall miljøpoeng for avtaler av denne typen. Dette skal være et datamedlem med sett- og finn-funksjoner. a) Programmer klassen Avtale b) Programmer klassen Billist c) Programmer klassen Kollektivist d) Programmer klassen Syklist Alle avtalene skal samles i en ArrayList i klassen Avtaler: ArrayList <Avtale> avtaler; e) Programmer klassen Avtaler som inneholder disse metodene: Programmer en metode som registrerer en ny avtale (i klassen Avtaler). Avtaleobjektet, skal være argument til metoden. Metoden skal returnere false dersom avtale med denne epostadressen og/eller nummer er registrert fra før. Programmer en metode som registrerer en passering for en avtale (i klassen Avtaler). Avtalenummeret skal være argument til metoden. Programmer en metode som lister all tilgjengelig informasjon for en avtale (alle offentlige finn-funksjoner). E-post adresse skal være argument for metoden