Tentamen i Objektorienterad modellering och design Helsingborg

Relevanta dokument
Tentamen i Objektorienterad modellering och design Helsingborg

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Tentamen i Objektorienterad modellering och design

Tentamen i Objektorienterad modellering och design Helsingborg

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

Tentamen i Objektorienterad modellering och diskreta strukturer

Lösningar till tentamen i EDAF25

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Tentamen i Objektorienterad modellering och diskreta strukturer

Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design. Vad är Objektorienterad modellering?

Kursstruktur. Objektorienterad modellering och diskreta strukturer / design. Programmering utan OMD. Vad är Objektorienterad modellering?

Tentamen i Objektorienterad modellering och diskreta strukturer

Föreläsning 13 Innehåll

Lösningar till tentamen i EDAF25

EDAF10: Objektorienterad modellering och diskreta strukturer. EDA061: Objektorienterad modellering och design. Diskreta strukturer.

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Kursstruktur. Objektorienterad modellering och diskreta strukturer / design. Vad är Objektorienterad modellering? Programmering utan OMD

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Grafer. Objektorienterad modellering och design (EDAF25) Föreläsning 2. Grafer. Grafer Traversering Djupet först. Agenda. Grafer

Föreläsning 15: Repetition DVGA02

Svaret kan ges i Javakod (eller i UML-klassdiagram). public class A { B minb;... } public class B { <B:s många variabler och metoder> } Lösning:

HT1 2015, FÖRELÄSNING

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

Integritetsprincipen. Objektorienterad modellering och diskreta strukturer / design

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

Kursombud. Objektorienterad modellering och diskreta strukturer / design. Agile? Designprinciper EDAF10 EDA061. Lennart Andersson. Grupper för projekt

HT1 2015, FÖRELÄSNING 14 (INFÖR TENTAN)

Information. Computer

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

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

Föreläsning 3. Stack

Tentamen i Objektorienterad modellering och design Helsingborg

Seminarierna Instruktioner. Övningarna Viktiga relationer

Objektorienterad Programmering (TDDC77)

Designmönster. Kapitel Kommandomönstret

Listor. Koffman & Wolfgang kapitel 2, avsnitt , och 2.9

Mål Förklaring av termer

4.7 Observatörsmönstret

Mål Förklaring av termer

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

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

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

Föreläsning 7. Träd och binära sökträd

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

Tentamen i Objektorienterad modellering och design (OMD) Helsingborg

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

LÖSNINGSFÖRSLAG

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt

Lösningsförslag till tentamen

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

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Tentamen Programmering fortsättningskurs DIT950

Föreläsning 3. Stack

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

Tentamen. DD2385 Programutvecklingsteknik vt 2011 Tisdagen den 24 maj 2011 kl Hjälpmedel: penna, suddgummi, linjal

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

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

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

Computer projekttid. Objektorienterad modellering och diskreta strukturer / design. Rapporter från verkligheten. EDAF10 i HT2

10. Mängder och språk

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Förra föreläsningen. Dagens agenda. Command Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Lösningsförslag till exempeltenta 2

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA550 DAG: TID: 14:00 18:00

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

DAT043 Objektorienterad Programmering

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Konstruktion av klasser med klasser

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

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

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

HT1 2013, FÖRELÄSNING 6

Förra föreläsningen. Alternativ kurslitteratur. Dagens agenda Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 10. ADT:er och datastrukturer

Tentamen EDA698 Realtidssystem (Helsingborg)

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

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

Objektorienterad programutveckling, fk

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Föreläsningsbilder EDAF10/EDA061 Ht 2015 HT1 2015, FÖRELÄSNING 3

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Projekt 2 XL. Observer-mönstret

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

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

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

Övningsuppgifter i Objektorienterad modellering och design (OMD) Helsingborg EDAF25

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

The billion dollar mistake

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

Föreläsning 2. Länkad lista och iterator

Transkript:

Lunds Tekniska Högskola Datavetenskap Roger Henriksson, Mathias Haage, Emelie Engström Tentamen EDAF25 2015-10-28 Tentamen i Objektorienterad modellering och design Helsingborg 1. a. Klassdiagram Lösningar Uttryck + size():int 1 huvud Atom {abstract Elista + size():int 1 svans Tal Sträng Empty NonEmpty -value:int -value:string b. Null Object - mönstret c. public interface Uttryck { public int s i z e ( ) ; public abstract class Atom implements Uttryck { return 1 ; public interface E l i s t a extends Utryck { public class Empty { return 0 ; public class NonEmpty { Uttryck huvud ; E l i s t a svans ; return huvud. s i z e ( ) + svans. s i z e ( ) ; 2. a. public class C i r c l e { private Point c e n t r e ; private int r a d i u s ; public void move ( int dx, int dy ) { c e n t r e. move ( dx, dy ) ; public class Point { private int x, y ; public void move ( int dx, int dy ) { x += dx ; y += dy ; 1

public class Drawing { private L i s t <C i r c l e > c i r c l e s ; private void movecircle ( C i r c l e ac, int dx, int dy ) { ac. move ( dx, dy ) ; b. (a) Bryter inte mot Lokalitetsprincipen, dvs operationer implementeras där operanderna är lättast tillgängliga. (b) Bättre integritet. Klassen Point och klassen Circle behöver inte ge ut (privata) attribut. (c) Drawing mindre beroende på Circle och Point (Drawing inte alls beroende av Point) (d) Möjliggör att göra Point till ett gränssnitt och därmed kunna ha många olika implementeringar av Point, t ex Point2D och Point3D. 3. a. Klassdiagram public interface Shape { public move ( int dx, int dy ) ; public p a i n t ( Graphics gr ) ; public abstract class SimpleShape implements Shape { private int x, y ; x += dx ; y += dy ; public class Square extends SimpleShape { private int s i d e ; public Square ( int x, int y, int s i d e ) { super ( x, y ) ; this. s i d e = s i d e ; public p a i n t ( Graphics gr ) { gr. drawrectangle ( x, y, s i d e, s i d e ) ; public class Figure extends ArrayList <Shape> { for ( Shape shape : this ) { 2

shape. move ( dx, dy ) ; Circle är analog till Square. b. public class Figure implements Shape { private L i s t <Shape> l i s t = new ArrayList <Shape >(); for ( Shape shape : l i s t ) { shape. move ( dx, dy ) ; public add ( Shape newshape ) { l i s t. add ( newshape ) ; public p a i n t ( Graphics gr ) { for ( Shape shape : l i s t ) { shape. p a i n t ( gr ) ; c. Sekvensdiagram f1:figure s1:square c1:circle gr:graphicsimpl drawrectangle(10,10,30,30) drawcircle(40,40,15) d. public class Drawing ( ) { ShapeFactory sf = new ShapeFactory ( ) ; Figure f 1 = sf. c r e a t e ( Figure ) ; Shape s1 = sf. c r e a t e ( Square 10 10 30 ) ; Shape c1 = sf. c r e a t e ( C i r c l e 40 40 15 ) ; f 1. add ( s1 ) ; f 1. add ( c1 ) ; f 1. p a i n t ( gr ) ; public class ShapeFactory { public Shape c r e a t e ( S t r i n g s t r ) { S t r i n g [ ] tokens = s t r. s p l i t ( \\ s ) ; i f ( tokens [ 0 ]. e q u a l s ( Figure ) ) return new Figure ( ) ; else i f ( tokens [ 0 ]. e q u a l s ( C i r c l e ) ) { int x = I n t e g e r. p a r s e I n t ( tokens [ 1 ] ) ; int y = I n t e g e r. p a r s e I n t ( tokens [ 2 ] ) ; int r = I n t e g e r. p a r s e I n t ( tokens [ 3 ] ) ; return new C i r c l e ( x, y, r ) ; else i f ( tokens [ 0 ]. e q u a l s ( Square ) ) { int x = I n t e g e r. p a r s e I n t ( tokens [ 1 ] ) ; int y = I n t e g e r. p a r s e I n t ( tokens [ 2 ] ) ; int s = I n t e g e r. p a r s e I n t ( tokens [ 3 ] ) ; 3

else return new Square ( x, y, s ) ; return null ; 4. a. UML-diagram expr sheet Interface + value(sheet):double Sheet +value(int):double -address:int +value(sheet):double b. (a) Alla klasser i cirkeln blir beroende av varandra. Alla klasser instabila. (b) Kan inte ha separatkompilering. Om någon av klasserna ändras så måste alla kompileras om och testas på nytt. c. UML-diagram expr Interface + value(env):double Env + value(int):double sheet -address:int +value(env):double Sheet +value(int):double I paketet expr public interface { public double value ( Env environment ) ; public interface Env { public double value ( int a d d r e s s ) ; public class implements { private int a d d r e s s ; public double value ( Env environment ) { return environment. value ( a d d r e s s ) 4

i paketet sheet finns public class Sheet implements Env { private [ ] array ; public double value ( int a d d r e s s ) { return array [ a d d r e s s ]. value ( this ) 5. Vi vill beräkna det maximala flödet i ett nätverk. Låt det aktuella vägnätet representeras av en riktad graf där noderna representerar korsningar och bågarna vägar. Vägar som inte är enkelriktade representeras med en båge i vardera riktning. Bågarnas kapacitet motsvarar antal fordon per tidsenhet som maximalt kan passera. Låt infarten vara källnod och utfarten vara sänka. 5