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

Like dokumenter
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: NEI

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

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

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

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

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 / NEI Hvis JA: ca. kl. 10:30

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

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

EKSAMENSOPPGAVE. Alle skrevne og trykte. Godkjent kalkulator.

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

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

EKSAMENSOPPGAVE. To dobbeltsidige ark med notater. Stian Normann Anfinsen

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

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

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

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

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

EKSAMENSOPPGAVE Njål Gulbrandsen / Ole Meyer /

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

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

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE. GEO-2010 Marine geofag

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

EKSAMENSOPPGAVE. KJE-1001 Introduksjon til kjemi og kjemisk biologi

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

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

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

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

EKSAMENSOPPGAVE. Professor Anders Schomacker

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

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

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

EKSAMENSOPPGAVE. To dobbeltsidige ark med notater. Stian Normann Anfinsen

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

EKSAMENSOPPGAVE. Linjal, kalkulator (hva som helst typ)

Løsningsveiledning for eksamensoppgaven i INF

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

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

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

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

EKSAMENSOPPGAVE. linjal. Jiri Konopasek

EKSAMENSOPPGAVE STA-2004.

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

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

EKSAMENSOPPGAVE Bjarte Aarmo Lund

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

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

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

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

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE I INF-1100

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

EKSAMENSOPPGAVE Bokmål og Nynorsk

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

UNIVERSITETET I OSLO

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

Hvorfor objektorientert programmering?

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Kalkulator med tomt minne

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE STA-1001.

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

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 9 TESTING

UNIVERSITETET I OSLO

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

TDT4100 Objektorientert programmering

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

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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

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

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

1 SK Generell informasjon. Emnekode: SK-200 Emnenavn: Informasjonskompetanse og leseutvikling. Dato: Varighet: 09:00-15:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF våren 2017

EKSAMENSOPPGAVE. Adm. bygget B154. Enkel lommeregner. Rute. Dr. Maarten Beerepoot

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

Oppgave 1. Sekvenser (20%)

UNIVERSITETET I OSLO

Eksamen IN1010/INF1010 våren 2018

Objektorientert design av kode. Refaktorering.

En snarvei til INF2100

Lokalt gitt eksamen januar 2015 Praktiske opplysninger til rektor

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

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

IN våren 2019 Onsdag 16. januar

IN våren 2018 Tirsdag 16. januar

Transkript:

Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 28 september 2017 Klokkeslett: 09-13 Sted: Teo-H3, 3218 Tillatte hjelpemidler: Type innføringsark (rute/linje): Antall sider inkl. forside: Kontaktperson under eksamen: Telefon/mobil: 6 Lars Brenna 907 86 723 Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10 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. Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no

Side 2 av 6 sider Eksamen INF-1400 Objektorientert programmering Høst 2017 Eksamenssettet består av to deler, totalt fire oppgaver. Les oppgaveteksten grundig og disponer tiden slik at du får tid til å svare på alle oppgavene. I noen oppgaver kan det være nødvendig å tolke oppgaveteksten ved å gjøre noen antagelser - gjør i så fall rede for hvilke antagelser du har gjort, men pass på å ikke gjøre antagelser som trivialiserer oppgaven. Merk: Fokus i oppgaven er objektorientering og bruk av datastrukturer vi bygger opp. Det gis ikke ekstra poeng for å utvide oppgaven utover det som er spesifisert. Pseudokode er i de fleste tilfeller godtatt, det kreves ikke kjørbar kode. Python3- syntaks er foretrukket, men ikke strengt nødvendig. Del 1 Selskapet SpaceX produserer og sender opp raketter bygd av gjenbrukbare komponenter. Noen flyvninger plasserer satellitter i bane, andre frakter last til den internasjonale romstasjonen (ISS). Dagens rakettmodell kalles "Falcon9" og er bygd opp av flere komponenter, også kalt «steg». Første steg er en stor rakett med mye løftekraft. Etter ca 160 sekunder er brennstoffet i første steg brukt opp, og steget kobles fra. Da overtar andre steg, og fører lasten videre. Når ønsket omløpsbane er nådd, slukkes andre steg og kobles fra. Segmentet som sitter på topp er enten en romkapsel («Dragon») eller et rent lasterom, og fortsetter så alene. Rakettene kan bygges i ulike konfigurasjoner, tilpasset en flyvnings formål, last og lengde. Nye komponenter produseres i høy takt, men for å redusere kostnadene ved oppskytning må rakettens steg/komponenter kunne lande trygt og brukes igjen. Det er ønskelig at en komponent er klar til ny oppskyting innen 24 timer fra landing. Komponenter lander på en av de to autonome droneskipene «Just Read the Instructions» og «Of Course I Still Love You», eller de eksploderer underveis eller i landingen. SpaceX trenger et system for å holde rede på raketter og komponenter.

Side 3 av 6 sider Vi definerer følgende klasser: Dragon: Representerer en romkapsel som kan frakte folk og/eller last. Attributter er: Seter: antallet seter i kapselen. Posisjon: verdi «I luften», «på bakken», «på skip», eller «ISS». Status: verdi «aktiv», «ødelagt», «landet», eller «klargjort». Lasterom: Representerer et lasterom. Attributter er: Lastekapasitet: maksimalt volum last som kan medbringes. Posisjon: verdi «I luften», «på bakken», «på skip», eller «ISS». Status: verdi «aktiv», «ødelagt», «landet», eller «klargjort». Motor: Et steg kan ha en eller flere motorer. Denne klassen representerer én spesifikk motor, kalt "Merlin". Attributter er: Skyvekraft: konstanten 934 kilonewton Posisjon: verdi «I luften», «på bakken», «på skip», eller «i testing». Status: verdi «aktiv», «ødelagt», «landet», eller «klar». Steg: Attributter er: Motorer: Liste over motorer. Posisjon: verdi «I luften», «på bakken», «på skip», eller «ISS». Status: verdi «aktiv», «ødelagt», «landet», eller «klargjort». Oppgave 1a - 15% Alle klassene har felles attributter. For å generalisere dette ønsker vi legge til en ny klasse Komponent. En komponent er enten et steg, et lasterom eller en Dragon. Det er kun steg som har motorer. Definer klassen Komponent og endre de andre klassene slik at de arver Komponent. Forklar kort (i tekst) hvordan du har brukt arv her. Det er kun behov for å fokusere på arv og attributtene til klassene siden vi skal jobbe med metodene senere. Oppgave 1b - 15% Tegn opp klassehierarkiet for den nye klassen Komponent og klassene som er definert over.

Side 4 av 6 sider Oppgave 1c - 5% I 2010 lanserte SpaceX rakett-typen «Falcon9» bestående av ett første steg med ni Merlin-motorer, et andre steg med én Merlin-motor, og ett nyttelast-steg. Innen få år planlegger de å transportere også mennesker, til ISS eller til månen, og det endelige målet er å bygge en koloni på Mars. I november 2017 har SpaceX derfor planlagt første oppskytning av raketten «FalconHeavy», som er mye sterkere enn "Falcon9". "FalconHeavy" består av tre første-steg montert i parallel (totalt 27 Merlin-motorer), ett andre steg som er identisk med Falcon9, og et nyttelast-steg som er større enn på Falcon9. Definer klassen Rakett, med de med attributter du mener den trenger (ikke metoder, ikke konstruktor/init). Klassen må kunne brukes til begge typer raketter. Typen rakett kjennetegnes ved komponentene den er sammensatt av. Oppgave 1d - 25% Livsløpet til en rakett er at den settes sammen av de ulike komponentene på bakken og deretter splittes den opp i luften etter oppskytning. Før oppskyting må komponenter legges til, og status på raketten settes til "klar" når rett antall komponenter er "klargjort". Status sjekkes etterhvert som komponenter legges til. Etter flygning, det vil si når alle steg står i ro, skal rakett-objektet arkiveres med rakettstatus «vellykket» (det vil si at alle komponenter har statusen «landet») eller rakettstatus «feilet» (det vil si at en eller flere komponenter har status «ødelagt»). Vi trenger da en metode sjekkrakettstatus() som kan kalles når raketten står i ro, og gå igjennom alle komponentene og oppdatere rakettens tilstand basert på alle komponentenes tilstand. Ved neste oppskytning av gjenbrukte komponenter lages et nytt Rakett-objekt. Anta at alle attributter er private, og at metoden arkiverrakett(rakettstatus) eksisterer. Alt annet utenfor klassen Rakett som trengs for at dette fungerer, kan også antas å eksistere. For klassen Rakett, implementer metodene init (), de get/set-metoder som er nødvendige, og metoden sjekkrakettstatus(). Oppgave 2-20% Når man ønsker å endre et objekts verdier, er bruk av get/set-metoder et vanlig design. Diskuter fordeler og ulemper med get/set-metoder, sett i forhold til å bruke offentlig tilgjengelige (public) attributter.

Side 5 av 6 sider Oppgave 3-15% c l a s s A: def i n i t ( s e l f ) : pass def foo ( s e l f, value ) : print ( "A", value ) c l a s s B(A ) : def i n i t ( s e l f ) : super ( ). i n i t () c l a s s C(B ) : def i n i t ( s e l f, m u l t i p l i e r =2): super ( ). i n i t () s e l f. m u l t i p l i e r = m u l t i p l i e r a = A() b = B() c = C() d = C(3) a. foo (1) b. foo (2) c. foo (3) d. foo (3) def foo ( s e l f, value ) : print ( "C", value m u l t i p l i e r ) a) Hva er polymorfi? b) Angi hva programmet over skriver ut.

Side 6 av 6 sider Oppgave 4-15% Så langt på denne eksamen har vi nevnt innkapsling (encapsulation), arv (inheritance), og polymorfisme. Et fjerde konsept innen objektorientering er abstraksjon. Forklar hva abstraksjon er i objektorientert programmering, gjerne (men ikke nødvendigvis) ved hjelp av et eksempel.