EKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Torsdag 29. september Klokkeslett: Kl 09:00-13:00.

Like dokumenter
EKSAMENSOPPGAVE. Eksamen i: INF-1400 Objektorientert programminering Dato: Mandag 26. mai 2014 Tid: Kl 09:00-13:00 Sted: Adm.

EKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Tirsdag 23. mai Klokkeslett: Kl 17:00-21:00. Adm. bygget, Aud.

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

Løsningsveiledning for eksamensoppgaven i INF

EKSAMENSOPPGAVE. Alle skrevne og trykte. Godkjent kalkulator.

EKSAMENSOPPGAVE. : INF-1400 Objektorientert programmering. Oppgavesettet er på 5 sider inklusiv forside

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

EKSAMENSOPPGÅVE. Kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA Hvis JA: ca. kl.10:00 og 12:00

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10:30

EKSAMENSOPPGAVE. 4 (1+3) Det er 12 deloppgaver (1abc, 2abcd, 3abc, 4ab) Andrei Prasolov

EKSAMENSOPPGAVE. GEO-2010 Marine geofag

UNIVERSITETET I OSLO

EKSAMENSOPPGÅVE. Kalkulator, 2 ark (4 sider) med eigne notater og Rottmanns tabeller. Ragnar Soleng

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE. To dobbeltsidige ark med notater. Stian Normann Anfinsen

EKSAMENSOPPGAVE. Godkjent kalkulator; Rottmanns tabeller; To A4 ark egne notater (håndskrevne, trykte, eller blandede).

INF1000 Eksamen 2014 (modifisert)

EKSAMENSOPPGAVE. Ingen. Robert Pettersen. Eksamen i: INF Innf. i progr. og datam. virkem. Dato: Tirsdag 5. desember 2017

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. Kl 10.00

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

EKSAMENSOPPGAVE. Kalkulator «Huskelapp» -A4 ark med skrift på begge sider Enkel norsk-engelsk/engelsk-norsk ordbok

EKSAMENSOPPGAVE. linjal. Jiri Konopasek

EKSAMENSOPPGAVE. KRAFT I og II Hall del 2 Kraft sportssenter Ingen

EKSAMENSOPPGÅVE. Mat-1005, Diskret matematikk. Godkjent kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

EKSAMENSOPPGAVE Njål Gulbrandsen / Ole Meyer /

EKSAMENSOPPGAVE. Professor Anders Schomacker

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

EKSAMENSOPPGAVE. Adm.bygget, rom B154 2 ark med egne notater (4 sider) Godkjent kalkulator Rottman. Matematisk formelsamling

Eksamensoppgaver 2014

EKSAMENSOPPGAVE. Linjal, kalkulator (hva som helst typ)

EKSAMENSOPPGAVE. MNF-6002 Videreutdanning i naturfag for lærere, Naturfag trinn 2. Kalkulator Rom Stoff Tid: Fysikktabeller (utskrift)

EKSAMENSOPPGAVE. ü Kalkulator med tomt dataminne ü Rottmann: Matematisk Formelsamling. rute

EKSAMENSOPPGAVE. Kalkulator Rom Stoff Tid: Fysikktabeller (Bok/utskrift fra bok)

EKSAMENSOPPGAVE I INF-1100

EKSAMENSOPPGAVE. Kalkulator, transportør (vinkelmåler), linjaler, fargeblyanter. Millimeterpapir deles ut.

Informasjon Eksamen i IN1000 høsten 2017

INF1000 Eksamen 2014 (modifisert)

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE Bjarte Aarmo Lund

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator.

EKSAMENSOPPGAVE. KJE-1001 Introduksjon til kjemi og kjemisk biologi

Finne ut om en løsning er helt riktig og korrigere ved behov

EKSAMENSOPPGAVE. Adm.bygget, Aud.max. ü Kalkulator med tomt dataminne ü Rottmann: Matematisk Formelsamling. rute

EKSAMENSOPPGAVE. To dobbeltsidige ark med notater. Stian Normann Anfinsen

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE STA «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator. Rute.

EKSAMENSOPPGAVE STA-2004.

EKSAMENSOPPGAVE Bokmål og Nynorsk

EKSAMENSOPPGAVE. Kalkulator «Huskelapp» -A4 ark med skrift på begge sider. Enkel norsk-engelsk/engelsk-norsk ordbok

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ) Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA Hvis JA: ca. kl.

EKSAMENSOPPGAVE. Maria Folkesson: Magne Petter Sollid: Dagfinn Husjord:

EKSAMENSOPPGAVE. B154 «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark (4 sider) med egne notater. Godkjent kalkulator.

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

EKSAMENSOPPGAVE Georg Elvebakk NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

UNIVERSITETET I OSLO

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Finne ut om en løsning er helt riktig og korrigere ved behov

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE. Fys-1002 Elektromagnetisme. Adm.bygget B154 Kalkulator med tomt dataminne, Rottmann: Matematisk formelsamling

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

EKSAMENSOPPGAVE. FYS 2000, Kvantemekanikk Dato: 7. Juni 2017 Klokkeslett: 9:00-13:00 Sted: Tillatte hjelpemidler: rute.

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

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. 7 (6 sider med oppgaver + 1 side med formler)

Informasjon Prøveeksamen i IN1000 høsten 2018

Tittel Objektorientert systemutvikling 2

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

TDT4100 Objektorientert programmering

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN

Steg 1: Rest etter divisjon

EKSAMENSOPPGAVE. FYS-1001 Mekanikk. Fire A4-sider (to dobbeltsidige ark) med egne notater. Kalkulator ikke tillatt. Ruter.

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

UNIVERSITETET I OSLO

Objektorientert programmering i Python

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. - Ett A4 ark med selvskrevne notater (begge sider) - Kalkulator. - Molekylbyggesett. Rute

Oppgave 1. Sekvenser (20%)

Eksamen Objektorientert Programmering 2013

Transkript:

Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: INF-1400 Objektorientert Programmering Dato: Torsdag 29. september 2016 Klokkeslett: Kl 09:00-13:00 Sted: Tillatte hjelpemidler: Type innføringsark (rute/linje): Antall sider inkl. forside: Kontaktperson under eksamen: Adm-bygget B154 Ingen Digital eksamen 5 John Markus Bjørndalen Telefon/mobil: 90148307 NB! Det er ikke tillatt å levere inn kladdepapir som del av eksamensbesvarelsen. Hvis det likevel leveres inn, vil kladdepapiret bli holdt tilbake og ikke bli sendt til sensur. UiT / Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no

Les gjennom hele oppgavesettet før du begynner å løse oppgavene. Oppgavene kan besvares på Norsk, Engelsk, Svensk eller Dansk. I besvarelsen kan du bruke Python, pseudokode eller en kombinasjon. Noen oppgaver har kun en a). Dette er for å tydeliggjøre hva selve spørsmålet som skal besvares er, det har ikke falt ut noen delspørsmål. Noen norske termer som er brukt i stedet for de engelske fra boka: Klasse - class Arv - inheritance Atributt - Attribute Metode - Method Del A En veldig nyttig måte å lære programmering på er å delta i større prosjekter. Etter å ha meldt deg frivillig på et ambisiøst prosjekt som ønsker å lage et mye bedre spill enn No Man s Sky oppdager du at man kanskje også kan lære noe om hvordan man ikke skal gjøre ting. Det er mange gode idéer her, men ting må ryddes opp i før noen kan begynne å leke seg med et enkelt tidlig spill. Oppgave 1 (20%) Romskip n_kanoner n_skudd n_raketter skjold skade Jager Hangarskip skip Fraktskip last a) Implementer klassehierarkiet som er angitt i UML-diagrammet over. Få tydelig fram arv og attributter. b) Skriv kode for å lage et objekt av typen Fraktskip. Hvilke attributter kan du nå fra objektet? UiT / Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no 2/ 5

Oppgave 2-20 % Vi antar at det kan være flere lag med i spillet som alle har mange romskip. For å regne ut styrken til hvert lag trenger vi en funksjon som regner ut styrken til et gitt lag basert på en liste over romskipene til laget. POENG_JAGER = 10 POENG_HANGARSKIP = 100 POENG_FRAKTSKIP = 70 def team_score(romskip): """Regner ut en styrkefaktor for et lag basert på en liste (romskip) med romskipene til laget""" pass a) Lag funksjonen team_score som regner ut poeng basert på hvilken type hvert romskip er. Konstantene øverst (POENG_JAGER, POENG_HANGARSKIP, POENG_FRAKTSKIP) angir hvor mange poeng hver type romskip gir. Ulempen med dette er at vi må endre team_score og legge til konstanter hvis vi ønsker å legge til flere klasser. Vi kan gjøre dette mer fleksibelt ved å erstatte konstantene over med en klasseattributt (STYRKEPOENG) i hver av romskipklassene. b) Vis hvordan du gjør dette ved å bruke Jager-klassen som eksempel. Vis hvordan du implementerer team_score når du kan bruke klasseattributten STYRKEPOENG. Et lite hint: funksjonen i b) burde bli merkbart enklere enn den i a). Oppgave 3-25 % En romstasjon i spillet trenger forsvarsverk rundt seg. Foreløpig har vi bare lagt til raketter og kanoner. Weapon-klassen under kan vi riktignok bruke, men det vil være mer hensiktsmessig å spesialisere 1 den slik at vi enkelt kan legge til flere våpentyper i framtiden. class Weapon: def init (self, weapon_type, cannon_shots=0, rockets=0, pos=none): self.weapon_type = weapon_type self.cannon_shots = cannon_shots self.rockets = rockets self.pos = pos def aim(self, target): """Returns a vector towards the target""" # placeholder, you don t need to change this method return [] def fire(self, target): target_vector = self.aim(target) if self.weapon_type == "cannon": if self.cannon_shots > 0: print("booom") objects.append(cannonball(self.pos, target_vector)) self.cannon_shots -= 1 1 Tenk i forhold til generaliseringen vi gjorde i oppgave 1 UiT / Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no 3/ 5

elif self.weapon_type == "rocket_launcher": if self.rockets > 0: print("wooosh") a) Bruk spesialisering av Weapon-klassen for å forbedre koden. Beskriv hvordan du ønsker å gjøre det og hvordan du bruker arv. b) Implementer koden. Du trenger ikke å skrive noe av støttekoden rundt Weapon-klassen. Du trenger heller ikke å implementere aim (bare angi hvor du vil ha den). Del B Oppgave 4 (20%) Noen sjekket inn kildekode i prosjektet, men ingen av de andre forstår helt hva den gjør og hvorfor. Den kjører stort sett uten problemer, men av og til krasjer spillet spektakulært. Klassenavnene kan umulig gi mening, men klassene brukes enkelte steder i koden, så vi må finne ut hva den gjør og hvor den feiler. def significant_match(template_list, snarf): return True # TODO: can t be bothered today - fix later class Platypus(object): self.templates = templates def oinker(self, snarf): return significant_match(self.templates, snarf) class Zebra(Platypus): Platypus. init (self, templates) def oinker(self, snarf): return False # Cannot be def hoot(self, msg): print("cannot hoot - no owls present") class Bat(Platypus): Platypus. init (self, templates) def hoot(self, msg): print("almost owl...ish") z = Zebra([1,2,3]) b = Bat([4,5,6]) p = Platypus([7,8,9]) For hvert av uttrykkene under, angi hva som skrives ut. Hvis noe feiler, angi hvorfor. Vi antar at obs er et objekt av typen Observasjon. UiT / Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no 4/ 5

a) print z.oinker(obs) b) print b.oinker(obs) c) print p.oinker(obs) d) z.hoot("detected") e) b.hoot("detected") f) p.hoot("detected") Oppgave 6-15% a) Gi en kort beskrivelse av 2 av de følgende uttrykk/konsepter: Klasse vs. objekt Polymorfi (det holder å angi 1 variant av polymorfi) Multiple inheritance Mutable/immutable getter/setter UiT / Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no 5/ 5