TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20.

Relevanta dokument
TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl

DELPROV 1 I DATAVETENSKAP

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

TENTAMEN I DATAVETENSKAP

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

OOP Objekt-orienterad programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Objektorienterad programmering i Java

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

Övningar Dag 2 En första klass

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Objektorienterad programmering

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Tentamen OOP

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Grundläggande programmering med C# 7,5 högskolepoäng

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Objektorienterad programmering D2

Programmeringsteknik med C och Matlab

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Klasshierarkier - repetition

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

PROGRAMMERINGSTEKNIK TIN212

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

SMD 134 Objektorienterad programmering

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Introduktion till arv

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen i Grundläggande programmering STS, åk

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering A. Johan Eliasson

TENTAMEN OOP

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 1 & 2 INTRODUKTION

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Konstruktion av klasser med klasser

LÖSNINGSFÖRSLAG TENTAMEN

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Tentamen i Objektorienterad programmering

Objekt och klasser - Introduktion

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Tentamen TEN1 HI

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Programmering för språkteknologer II, HT2014. Rum

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Föreläsning 5-6 Innehåll

Klassdeklaration. Metoddeklaration. Parameteröverföring

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Föreläsning 13 Innehåll

Föreläsning 9: Arv och UML

Editering, Kompilering och Exekvering av Javaprogram

OOP Omtenta

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

OOP Objekt-orienterad programmering

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Objektorienterad Programmering (TDDC77)

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Laboration 1 - Grunderna för OOP i Java

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Objektsamlingar i Java

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Parameteröverföring. Exempel. Exempel. Metodkropp

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

TENTAMEN OOP

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Tentamen. Programmeringsmetodik, KV: Java och OOP. 20 januari 2005

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Transkript:

Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer: 5DV133-1 Till skrivningsbevakaren: Avskilj detta (sid1) försättsblad och stoppa i kuvert som skickas till Yvonne Löwstedt, Datavetenskap OBS! OBS! Denna skrivning rättas kodad. Detta blad kommer att avskiljas innan läraren får skrivningen för rättning. Ovanstående kod måste därför finnas på samtliga svarsblad när du lämnar skrivningen till skrivvakten. Memorera ditt kodnummer eftersom det även kommer att användas som referens när resultaten meddelas. 1(8)

UMEÅ UNIVERSITET Institutionen för Datavetenskap UMEÅ UNIVERSITY Dept of Computing Science TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 5DV133-1 Problem Inlämnad Poäng 1 2 3 4 5 6 7 8 9 10 Summa Betyg 2(8)

TENTAMEN I DATAVETENSKAP. OBJEKTORIENTERAD PROGRAMMERINGSMETODIK (5DV133) Datum : 13-06-05 Tid : 16.00-20.00 Hjälpmedel : Inga Antal Uppgifter : 10 Totalpoäng : 52 (halva poängtalet krävs normalt för godkänt) Kryssa för de uppgifter du lämnar in Skriv tentakoden på varje blad. Lösningarna skall vara snyggt och prydligt nedskrivna. Tankegången skall vara lätt att följa. Alla antaganden som inte är uppenbara skall redovisas. Tips! Försök på alla uppgifter! Om du inte kan lösa en av flera deluppgifter, gör lämpliga antaganden och gå vidare till efterföljande deluppgifter. Uppgifter kan vara felformulerade, fråga om du är osäker eller tycker att något verkar konstigt. Jag nås via telefon kontakta tentavakterna. Det är ditt ansvar att övertyga om att du besitter den kunskap som efterfrågas. Det är viktigt att du löser den givna uppgiften! Lycka till! 3(8)

Uppgift 1. (13p) Förklara följande begrepp: a) Omdefinition b) Arv c) Instans d) Attribut e) Aggregat f) Överlagring (overloading) g) Dynamisk bindning h) Primitiv datatyp i) Syntax j) Semantik k) Checked Exception (Kontrollerat undantag) l) Reserverade ord m) Konstruktor Uppgift 2. (5 poäng) Vad används följande reserverade ord till i java a) extends b) package c) catch d) protected e) final Uppgift 3 (5 poäng) a) Java-program skall gå att köra på olika datorer och under olika operativsystem utan att behöva kompileras om. Hur åstadkoms detta? b) Förklara vad en abstrakt klass och ett interface är för något. Ange skillnader och likheter. c) Java har ej multipelt arv. Hur har man valt att lösa detta istället i Java. d) Vad är skillnaden mellan en klass och ett objekt e) Förklara varför man har flera olika datatyper för att representera heltal i java (och många andra programspråk) 4(8)

Uppgift 4. (5 poäng) Vilka av följande påståenden är sanna respektive falska. 1 poäng per rätt svar, -1 poäng för felaktigt svar och om man inte svarar på en uppgift får man 0 poäng för denna. a) Alla ord som kan skapas med hjälp av bokstäverna a-z, A-Z och _ kan användas som variabelnamn i Java. b) För att använda en klass i ett annat paket måste du använda import kommandot i början av din källkodsfil. c) Man får ha två metoder i samma klass som skiljer sig åt endast beroende på returtypen d) Man får ha två metoder med samma namn i en klass om de har olika parametrar (typ/antal) e) Man kan ha metoder som tar ett variabelt antal argument vid anrop Uppgift 5. (2p) Om Truck och Motorcycle är subklasser till Vehicle. Vilka av följande deklarationer är ogiltiga? Varför? a) Truck t = new Vehicle(); b) Vehicle v = new Truck(); c) Motorcycle m1 = new Vehicle(); d) Motorcycle m2 = new Truck(); Uppgift 6 (3 poäng) Man kan prata om tre typer av fel: kompileringsfel, run-time fel och/eller logiska fel. Kategorisera följande situationer (sätt X): Situation Kompileringsfel run-time fel Du försöker anropa en metod som tar en int som parameter med ett värde av typen double Du använder dig av ett för högt värde då du försöker indexera dig i ett fält (array) Du råkar skriva x=true när du skulle ha skrivit x==true i villkoret till en if-sats Du råkar skriva x=1 när du skulle ha skrivit x==1 i villkoret till en if-sats En metod returnerar ett felaktigt resultat Du glömmer att skriva ett semikolon efter en sats logiskt fel 5(8)

Uppgift 7 (4 poäng) Vad kännetecknar en god klass? Uppgift 8. (3 poäng) Vilka av satserna nedan kan kompileras och exekveras utan problem givet klasserna i klassdiagrammet nedan (motivera). Innan satserna står följande deklarationer. Kryssa över satser som ej fungerar. Class1 c1 = new Class1(); Class2 c2 = new Class2(); Class3 c3 = new Class3(); Class4 c4 = new Class4(); o c1=c2; o Object o=c2; o c2.method1(1); o o.method1(); o c2=c3; Class1 Class2 +Class1() +method1() +method1(int) +Class2() +method1() Class3 +Class3() +method1() Class4 +Class4() +method1(int) 6(8)

Uppgift 9. (4p) Antag att vi har en klass Hus som ser ut som följer: Vad har Evas och Nisses hus för färg (i det fall då variablerna refererar till ett objekt) efter varje sats i konstruktorn nedan, märkt a) till g), när ett objekt av klassen By skapas? class By { Hus evas; Hus nisses; public By() { } a) evas = new Hus( Rött ); b) nisses = evas; c) nisses.måla( Blått ); d) evas = new Hus( Gult ); e) kopierafärg(evas, nisses); f) evas.måla( Grönt ); g) husbyte(evas, nisses); // Kopiera färgen från ett hus till ett annat public void kopierafärg(hus p, Hus s) { s.måla(p.getfärg()); } } public void husbyte (Hus a, Hus b) { Hus temp; temp=b; b = a; a=temp; } Hus - String färg + Hus (String färg) + måla (String nyfärg) + getfärg() : String 7(8)

Uppgift 10 (8 poäng) Ni har blivit ombedda att hjälpa till med designen av ett nytt system för ett biluthyrningsföretag. Er uppgift blir att ta fram en lämplig klassdesign för systemet (ni behöver alltså inte implementera det). Företaget hyr ut två olika typer av bilar (bensindrivna personbilar och skåpbilar som går på diesel). Kunderna ska kunna boka en viss typ av bil för ett visst antal dagar och systemet skal då reservera en sådan bil under tidsperioden som kunden önskar (förutsatt att bokningen går att utföra). För att hålla reda på bilarna använder man sig på företaget av bilarnas registreringsnummer. Självklart ska var och en av bilarna inte kunna vara bokade/uthyrda till två kunder samtidigt. För att kunna hantera ev. problem så behöver företaget veta namnet, personnummer och telefonnumret till alla kunder som bokat en bil. Då en kund återlämnar bilen ska systemet kunna räkna ut priset som denne ska betala. Priset bestäms av antalet dagar som bilen varit uthyrd (200 kronor/dag för personbilen och 300kr/dag för skåpbilarna), antal mil som bilen körts (10 kr/mil) samt hur mycket bensin/diesel som är kvar i tanken jämfört med då bilen hämtades ut. För diesel debiteras 14 kronor per liter mindre som finns i tanken vid återlämnandet och för bensin 15 kronor. Om mer bensin/diesel finns i tanken vid återlämnandet än vid uthämtandet så dras motsvarande summa av på totalpriset. Lämna in en beskrivning av designen som innehåller alla klasser och hur de hänger ihop. För varje klass ska alla viktiga attribut och metoder finnas med. Ni ska beskriva er design genom ett UML-klassdiagram. 8(8)