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



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

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

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

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

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

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

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

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

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

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

Eksamensoppgave i IFUD1025 Programmering i Java

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

HØGSKOLEN I SØR-TRØNDELAG

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

HØGSKOLEN I SØR-TRØNDELAG

Eksamensoppgave i IFUD1025 Programmering i Java og IINI4013 Programmering i Java

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 Avdeling for informatikk og e-læring AITeL

Eksamensoppgave i IFUD1025 Programmering i Java

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

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

HØGSKOLEN I SØR-TRØNDELAG

Eksamen Objektorientert Programmering 2013

HØGSKOLEN I SØR-TRØNDELAG

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

Eksamen IN1010/INF1010 våren 2018

HØGSKOLEN I SØR-TRØNDELAG

Algoritmer og Datastrukturer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

Eksamensoppgave i IFUD1025 Programmering i Java

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

UNIVERSITETET I OSLO

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

Algoritmer og Datastrukturer

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

EKSAMEN. Objektorientert programmering

/** *Kamp klassen inneholder kampfakte og hoveddelen av kampmotoren. young */

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF106 Objektorientert programmering

HØGSKOLEN I SØR-TRØNDELAG

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

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

HØGSKOLEN I SØR-TRØNDELAG

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

UNIVERSITETET I OSLO

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

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

HØGSKOLEN I SØR-TRØNDELAG

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

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

UNIVERSITETET I OSLO

INF1010 Sortering. Marit Nybakken 1. mars 2004

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

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

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

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

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Løsningsforslag EKSAMEN

Eksamen i. Høst 2013

HØGSKOLEN I SØR-TRØNDELAG

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

Algoritmer og Datastrukturer

Algoritmer og datastrukturer Eksamen 22. februar 2011

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

Algoritmer og Datastrukturer

Transkript:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Emnekode: Emnenavn: Klasse(r): Studiepoeng: Faglærer(e): Kontaktperson (adm.) Hjelpemidler: Oppgavesettet består av: Vedlegg består av: 15. desember 2010 4 timer (9:00-13:00) LO171D NETT2010H 6 Vuokko-Helena Caseiro (tlf. +39 06 51 26 063) Ingrid Island (tlf. 73 55 95 64) Alle skrevne og trykte hjelpemidler samt godkjent kalkulator. 2 oppgaver og 5 sider (inkludert forside) Ingen Merknad: Oppgaveteksten kan beholdes av studenter som sitter eksamenstiden ut. Lykke til!

HiST Avdeling for informatikk og e-læring Side 2 av 5 Oppgave 1 ( 40 % ) Et vanlig A4-ark er et ark i A4-format. Kortsiden er ca. 210 mm. og langsiden er ca. 297 mm. A4-formatet er et eksempel på et papirformat. A4-formatet er det fjerde formatet i en serie av formater A0, A1, A2,... som kalles A-serien. Vi vil definere en serie av papirformater P0, P1, P2,... La P0 s langside være gitt. For hver i 0: - Pi's kortside er lik Pi's langside delt på 2 ( 2 er ca. 1,4). - Pi+1's langside er lik Pi's kortside. For ark i en serie av formater gjelder da: - Alle arkene har samme form (dvs. forholdet mellom langside og kortside er konstant). - Ved å brette et ark i to like deler, midt på langsiden, får vi neste ark i serien. Sammenligning av formatene i en serie. Eksempel: A-serien tar utgangspunkt i at A0 har et areal på en kvadratmeter (en kvadratmeter er lik 1 000 000 mm 2 ). Vi får et A4-ark ved å brette et A0-ark fire ganger. A0 A1 A2 A3 A4 A5... mm mm 841 1189 594 841 420 594 297 420 210 297 148 210... Desimalene er fjernet ved avrunding og avkutting. Tips: Du kan få bruk for følgende Math-metoder: - public static double sqrt(double a) returnerer den positive kvadratroten av a (dvs. a). - public static double pow(double a, double b) returnerer a opphøyd i b (dvs. a b ). a) Begynn å lage en klasse Serie med en objektvariabel langside0 av type double: langside0 er det nullte formatets langside i mm. Lag en passende konstruktør. Eksempel: A-serien skal kunne representeres som et Serie-objekt med langside0 lik ca. 1189. b) Lag en Serie-metode public double finnlangside(int nr). Metoden skal returnere langsiden (i mm.) av format nummer nr i denne serien. A-serie-eksemplet fortsatt: For nr lik 4 skal metoden returnere ca. 297. c) Lag en Serie-metode public double finnkortside(int nr). Metoden skal returnere kortsiden (i mm.) av format nummer nr i denne serien. A-serie-eksemplet fortsatt: For nr lik 4 skal metoden returnere ca. 210. d) Lag en Serie-metode public double finnareal(int nr) som returnerer arealet (i mm 2 ) av format nummer nr i denne serien.

HiST Avdeling for informatikk og e-læring Side 3 av 5 Vekten av papir uttrykkes i gram per kvadratmeter. F.eks. veier vanlig kopipapir 80 g/m², så et A0-ark laget av slikt papir veier 80 gram. e) Lag en Serie-metode public double finnvekt(int nr, double gramperkvm). Metoden skal returnere vekten (i gram) av et ark i format nummer nr i denne serien når papiret veier gramperkvm g/m². A-serie-eksemplet fortsatt: Metoden skal returnere 5 når nr er 4 og gramperkvm er 80. f) Lag en klasse Papirformat for å representere et format i en serie. Det skal være to objektvariabler: - papirformatets serie - papirformatets nummer i denne serien F.eks. skal A4 kunne representeres som et Papirformat-objekt med en referanse til et Serie-objekt for A-serien og med nummer lik 4. Papirark selges i pakker. Alle arkene i pakken er like: De er laget av samme slags papir og er i samme format. g) Begynn å lage en klasse Pakke. Det skal være objektvariabler som uttrykker - papirets vekt i gram per kvadratmeter - papirformatet - antallet ark Eksempel: Det skal være mulig å representere en pakke med 500 A4-ark laget av papir som veier 80 g/m². h) Lag en Pakke-metode finnvekt() som returnerer denne pakkens vekt (i gram). Eksemplet fra deloppgave g) fortsatt: Ett A4-ark veier 5 gram, så metoden skal returnere 5 * 500, dvs. 2500.

HiST Avdeling for informatikk og e-læring Side 4 av 5 Oppgave 2 ( 60 % ) I en fotballkamp spiller et hjemmelag mot et bortelag. Kampens stilling er - H hvis hjemmelaget har flere mål enn bortelaget - U hvis lagene har like mange mål - B hvis bortelaget har flere mål enn hjemmelaget Stillingen er først U (det er ennå ingen mål). Stillingen i kampen kan så endre seg mange ganger helt til kampen er ferdigspilt. a) Begynn å lage en klasse Stilling. Det skal være en objektvariabel av type char som inneholder enten H, U eller B. Lag to Stilling-konstruktører: - public Stilling(char tegn): Objektvariabelen settes lik tegn. - public Stilling(int anthjemme, int antborte): Hvis anthjemme er større enn antborte, settes objektvariabelen lik H. Hvis anthjemme er lik antborte, settes objektvariabelen lik U. Hvis anthjemme er mindre enn antborte, settes objektvariabelen lik B. b) Lag en passende Stilling-metode equals(). c) Begynn å lage en klasse Fotballkamp. Det skal være objektvariabler som uttrykker - hjemmelagets navn - bortelagets navn - hjemmelagets antall mål - bortelagets antall mål - om kampen er ferdigspilt eller ikke Lag også en passende Fotballkamp-konstruktør. Det skal f.eks. være mulig å representere en fotballkamp mellom Lazio og Roma med Lazio som hjemmelaget. d) Lag en Fotballkamp-metode public void registreretmål(boolean hjemme): Hvis kampen ikke er ferdigspilt og hjemme er true, skal antall mål for hjemmelaget økes med en. Hvis kampen ikke er ferdigspilt og hjemme er false, skal antall mål for bortelaget økes med en. e) Lag en Fotballkamp-metode public Stilling finnstilling() som returnerer denne kampens stilling. f) Lag en Fotballkamp-metode som registrerer at kampen er ferdigspilt. Vi ønsker et program som skal fungere som en slags tippekupong til bruk både før, under og etter noen kamper som spilles en ettermiddag: - Før kampene begynner, registrerer vi de fotballkampene som skal spilles, og for hver kamp tipper vi det endelige resultatet av kampen (mao. tipper vi hva stillingen - H, U eller B vil være når kampen er ferdigspilt). - Mens kampene spilles registrerer vi målene etterhvert som de blir laget kan vi få beregnet i hvor mange kamper stillingen nå er lik vår tipping - Etterhvert som kampene blir ferdigspilt, registrerer vi dette. Når alle kampene er ferdigspilt, får vi beregnet hvor mange rette vi hadde tippet.

HiST Avdeling for informatikk og e-læring Side 5 av 5 Eksempel: En ettermiddag er det tre fotballkamper. Vi har tippet at Parma og Roma vinner sine kamper, og at det blir uavgjort mellom Inter og Milan. Situasjonen er nå: Hjemmelag Bortelag Hjemmemål Bortemål Ferdigspilt? Stilling Tipping Parma Genoa 0 0 nei U H Lazio Roma 2 3 nei B B Inter Milan 0 1 ja B U Vi ser at i en kamp, nemlig i Lazio-Roma-kampen, er stillingen nå lik tippingen. Som en del av det ønskede programmet skal du programmere noe av en klasse Tippekupong. g) Begynn å lage klassen Tippekupong med to like lange endimensjonale tabeller som objektvariabler: En Fotballkamp-tabell kamper og en Stilling-tabell tipping, s.a. for hver indeks i inneholder tipping[i] det vi tipper for kamper[i]. Lag også en passende Tippekupong-konstruktør. h) Lag en Tippekupong-metode som returnerer antall kamper med stilling lik tipping. F.eks. skal metoden returnere 1 når situasjonen er som i eksemplet på toppen av siden. i) Lag en Tippekupong-metode public boolean erallekamperferdigspilt() som returnerer true bare hvis alle kampene er ferdigspilt. j) Lag en Tippekupong-metode tipp() som fyller tipping-tabellen på følgende måte: - Lag først en liste med alle lagnavnene (både hjemmelag og bortelag). - Sorter så denne listen vha. java.util.arrays-metoden sort(). - Del så den sorterte listen i tre omtrent like store deler, så godt det lar seg gjøre (del på tre og la f.eks. den siste delen få resten etter heltallsdivisjonen). Vi tenker oss at vi vil la hvert lag i den første delen av listen vinne sin kamp, og la hvert lag i den andre delen ende sin kamp uavgjort, og la hvert lag i den tredje delen av listen tape sin kamp. Men det kan være umulig fordi vi da ikke tar hensyn til hvem som spiller mot hvem. Det kan være konflikter, som f.eks. at to lag som spiller mot hverandre begge står oppført som vinnere. For hver kamp skal du tippe ved å bruke følgende regler, som løser konfliktene: 1) Hvis hjemmelaget er oppført som vinner, så tipp H. 2) Hvis bortelaget er oppført som taper, så tipp H. 3) Hvis hjemmelaget er oppført som taper og bortelaget som vinner, så tipp B. 4) I alle andre tilfeller skal du tippe U. Eksemplet fra toppen av denne siden fortsatt: - Lagene er Parma, Genoa, Lazio, Roma, Inter, Milan. - I sortert rekkefølge er lagene Genoa, Inter, Lazio, Milan, Parma, Roma. - Vi vil forsøke å la Genoa og Inter vinne sine kamper, å la Lazio og Milan ende sine kamper uavgjort, og å la Parma og Roma tape sine kamper. Da vil vi tippe B for Parma-Genoa-kampen (ved regel 3) H for Lazio-Roma-kampen (ved regel 2) H for Inter-Milan-kampen (ved regel 1)