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

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

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

TENTAMEN I DATAVETENSKAP

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

DELPROV 1 I DATAVETENSKAP

TENTAMEN. Kurskod/Kurs: 5DV013, Datakommunikation och datornät. Ansvariga lärare: Jerry Eriksson Anders Broberg

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

PROGRAMMERINGSTEKNIK TIN212

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Objektorienterad programmering, Java, 5p TDBA63

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

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

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

DAT043 Objektorienterad Programmering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Tentamen i Grundläggande programmering STS, åk

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

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

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

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

TENTAMEN OOP

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

Tentamen i Grundläggande programmering STS, åk 1 lördag

1 Comparator & Comparable

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

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

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

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

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

Tentamen i Grundläggande programmering STS, åk 1 fredag

Objektorienterad Programmering (TDDC77)

Tentamen i Grundläggande programmering STS, åk 1 fredag

Vad gör vi idag? F8 Uppsamling/Repetition. Tentamen. Detta har vi gått igenom. Detta kommer vi att gå igenom. Detta har vi gått igenom.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2002

Instuderingsuppgifter läsvecka 2

Fördjupad Java. Undantagshantering. Fel

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Kopiering av objekt i Java

Tentamen i Objektorienterad modellering och design Helsingborg

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

OOP Objekt-orienterad programmering

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

F4. programmeringsteknik och Matlab

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

DELPROV1. Objektorienterad programmeringsmetodik, 7.5p 5DV081, 5DV109

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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

Lösningsförslag till tentamen

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Tentamen för TTIT71 Programmering kl Institutionen för datavetenskap Linköpings universitet. Uppgift 1. (2 p)

Tentamen i Objektorienterad modellering och design

Tentamen i Objektorienterad programmering

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen, EDAA10 Programmering i Java

LÖSNINGSFÖRSLAG TENTAMEN

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

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

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

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Objekt, Klasser, Paket m. m.

CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer

Generiska konstruktioner. Kursbokens kapitel 13

Classes och Interfaces, Objects och References, Initialization

Tentamen i Programmering

Tentamen, Algoritmer och datastrukturer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

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]

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Objekt och klasser - Introduktion

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

Generics och polymorfism. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

C++ Objektorientering - Klasser. Eric Elfving Institutionen för datavetenskap

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Transkript:

Umeå Universitet Datavetenskap Anders Broberg 15-01-12 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg HT-15 Datum: 15-01-12 Tid: kl 14.00-18.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(7)

UMEÅ UNIVERSITET Institutionen för Datavetenskap UMEÅ UNIVERSITY Dept of Computing Science TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg HT-15 Datum: 15-01-12 Tid: kl 14.00-18.00 5DV133-1 Problem Inlämnad Poäng 1 2 3 4 5 6 7 8 9 Summa Betyg 2(7)

TENTAMEN I DATAVETENSKAP. OBJEKTORIENTERAD PROGRAMMERINGSMETODIK (5DV133) Datum : 15-01-12 Tid : 14.00-18.00 Hjälpmedel : Inga Antal Uppgifter : 9 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(7)

Uppgift 1 (8p) 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. Obs! Man kan inte få mindre än noll poäng på uppgiften. a) Alla klasser ärver från klassen Object i Java. b) Interface i java kan bara innehålla konstanter och abstrakta metoder. c) Ett exceptions /undantag måste fångas i try-catch block i den metod där de kastats. d) Man får ha två metoder i samma klass som skiljer sig åt endast beroende på returtypen e) Man får ha två metoder med samma namn i en klass om de har olika parametrar (typ/antal) f) Alla ord som kan skapas med hjälp av bokstäverna a-z, A-Z och _ kan användas som variabelnamn i Java. g) 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. h) En av de stora fördelarna med Java är att det tillåter äkta multipelt arv. Uppgift 2 (3 poäng) I din konstruktor till en Bil-klass står det public Bil { super(); a) Vad betyder satsen super() i detta sammanhang? Kan den förekomma någon annanstans i konstruktorn och i så fall var? Lite längre ner i klassen står följande:.. super.ritaut();.. b) Vad innebär denna sats? Uppgift 3 (4 poäng) Vad kännetecknar en god klass? 4(7)

Uppgift 4. (12 poäng) a) Förklara Java-konstruktionerna extends och implements. Ange skillnader och likheter. b) Förklara vad en abstrakt klass och ett interface är för något. Ange skillnader och likheter. c) Vad är skillnaden mellan en klass och ett objekt. d) Java-program skall gå att köra på olika datorer och under olika operativsystem utan att behöva kompileras om. Hur åstadkoms detta? e) Jämför fält med klassen Vektor. Vilka skillnader och likheter finns. f) Förklara skillnaden mellan överlagring (overloading) och omdefinition (overriding). Uppgift 5. (4p) Följande reserverade ord används i samband med hantering av exceptions (undantag). Förklara vad deras användning/vad de gör och ge exempel på användandet av var och en av dem. a) Try b) Catch c) Throw d) Throws Uppgift 6 (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. Uppgift 7 (4 poäng) Förklara CRC-metoden, vad den går ut på, vilka steg den har, samt vad CRC står för. 5(7)

Uppgift 8 (4 p) Nedan finns ett antal klasser och interface. Ge en beskrivning av dessa (och relationerna mellan dem) i form av ett UML-klassdiagram. // The context class uses this to call the concrete strategy public interface Strategy { int execute(int a, int b); // Implements the algorithm using the strategy interface public class ConcreteStrategyAdd implements Strategy { public int execute(int a, int b) { System.out.println("Called ConcreteStrategyAdd's execute()"); return a + b; // Do an addition with a and b public class ConcreteStrategySubtract implements Strategy { public int execute(int a, int b) { System.out.println("Called ConcreteStrategySubtract's" + "execute()"); return a - b; // Do a subtraction with a and b public class ConcreteStrategyMultiply implements Strategy { public int execute(int a, int b) { System.out.println("Called ConcreteStrategyMultiply's" + "execute()"); return a * b; // Do a multiplication with a and b // Configured with a ConcreteStrategy object and maintains a reference to a Strategy object public class Context { private Strategy strategy; // Constructor public Context(Strategy strategy) { this.strategy = strategy; public int executestrategy(int a, int b) { return strategy.execute(a, b); 6(7)

Uppgift 9 (5 poäng) Hitta de fel som finns i nedanstående klass. Beskriv för varje fel vad som är fel samt ge ett förslag på vad man skulle kunna göra för att åtgärda det. Obs! Radnummren är bara till för att ni skall ha något att hänvisa till och räknas ej som ett fel. Observera också att antal poäng inte har något (direkt iallafall) med antal fel att göra. 1. public class mångafel extends Object 2. { 3. final int enidentifierare=0; 4. int hej=1; 5. void enmetod() 6. { 7. hej=2; 8. 9. 10. int enmetod() 11. { 12. private int enlokalvariabel=1; 13. enidentifierare++; 14. return enlokalvariabel/2; 15. 16. 17. public Object enannanmetod(int värden[]) throw IOException 18. { 19. float hej=1.0; 20. if (hej/2==0.5) 21. throws(new IOException("Ooops")); 22. return värden; 23. 24. 25. public void entredjemetod(int värden[]) 26. { 27. int enlokalvariabel =0; 28. for (int i=0;i<värden.length;i++) 29. enlokalvariabel +=värden[i]; 30. return enlokalvariabel; 31. 32. 7(7)