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

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

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

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

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

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

Objektorienterad Programmering (TDDC77)

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

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

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

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

F4. programmeringsteknik och Matlab

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

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

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

Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.

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

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

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

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

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

Föreläsning 5-6 Innehåll

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

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

Föreläsning 13 Innehåll

Att skriva till och läsa från terminalfönstret

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

Föreläsning 8: Exempel och problemlösning

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

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

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

Tentamen. Lösningsförslag

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

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

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-17, TDA540. Dag: , Tid:

Föreläsning 12: Exempel och problemlösning

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

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

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Modeller, Objekt och Klasser

Föreläsnings 10 - Överlagring, Konstruerare, Arv, Mer Exceptions, Reguljära Uttryck

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

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

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

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

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

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

TDA550 - Objektorienterad programvaruutveckling, fk

Lösningsförslag till tentamen i OOP, HI1027 Fredag 21 oktober 2011

TENTAMEN OOP

Objektorienterad Programmering (TDDC77)

Klasshierarkier - repetition

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering DAT043. Föreläsning 4 23/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Malmö högskola 2007/2008 Teknik och samhälle

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

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 3

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

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Del A (obligatorisk för alla)

Lösningsförslag till tentamen

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Tentamen FYTA11 Javaprogrammering

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

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA550 DAG: TID: 8:30 12:30

Föreläsning 6: Metoder och fält (arrays)

Lösningsförslag tentamen FYTA11 Java

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Tentamen OOP

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

LÖSNINGSFÖRSLAG

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

LÖSNINGSFÖRSLAG TENTAMEN

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

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Classes och Interfaces, Objects och References, Initialization

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 9-10 Innehåll

Institutionen för TENTAMEN CTH HT-13 Datavetenskap TDA550 DAG: TID: 8:30 12:30

Föreläsning 3-4 Innehåll

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 1

Föreläsning 2, vecka 8: Repetition

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Föreläsning 9: Arv och UML

DAT043 Objektorienterad Programmering

Objektorienterad programmering i Java

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Transkript:

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras, utan endast kan användas som superklass vid arv. En abstrakt klass innehåller en eller flera abstrakta metoder, metoder som endast har signatur (namn, returtyp och parameterlista) men saknar implementation. b) En klass kan ärva metoder och variabler från en annan (super) klass. Arv är ett sätt att abstrahera och återanvända kod. c) Ett undantag (exception) är en oväntad händelse som inträffar under programkörningen. Ett undantag genereras (kastas) av en throw-sats. Man kan antingen fånga undantaget i en try-sats eller vidarebefordra det. d) En variabel är en identifierare i ett program som representerar en minnesposition i vilken variabelns värde lagras under exekveringen av programmet. Uppgift 2 4 Konstruktorn har inte samma namn som klassen. 9 Variabeln n är inte deklarerat, det borde vara num.

Uppgift public class Exp { 2 public static double exp(double x) { double res =.0; 4 double fac =.0; 5 double pow =.0; 6 7 for (int n = ; n < 00; n++) { pow *= x; 9 fac *= n; 0 res += pow / fac; 2 return res; 4 5 Uppgift 4 public class Point { 2 private int x, y; 4 public Point(int x, int y) { 5 this.x = x; 6 this.y = y; 7 9 public int getx() { 0 return x; 2 public int gety() { 4 return y; 5 6 7 @Override public boolean equals(object o) { 9 if (o == null) { 20 2 else if (!(o instanceof Point)) { 22 2 else { 24 return (x == ((Point) o).getx() && y == ((Point) o).gety()); 25 26 27 2 @Override 29 public String tostring() { 0 return "(" + x + ", " + y + ")"; 2

2 import java.util.*; 2 public class Path implements Iterable<Point> { 4 private List<Point> points; 5 private boolean loops = false; 6 7 public Path(Point p) { points = new LinkedList<Point>(); 9 points.add(p); 0 2 public void addpoint(point p) { Point last = points.get(points.size() - ); 4 5 if (p.equals(last)) { 6 System.out.println("Can t add same end point."); 7 else { // check for loops 9 if (points.contains(p)) 20 loops = true; 2 22 // Add new end point 2 points.add(p); 24 25 26 27 public Point[] getpoints() { 2 Point[] res = new Point[points.size()]; 29 0 for (int i = 0; i < points.size(); i++) res[i] = points.get(i); 2 return res; 4 5 6 public Iterator<Point> iterator() { 7 return points.iterator(); 9 40 public boolean loops() { 4 return loops; 42 4 44 @Override 45 public String tostring() { 46 String res = "["; 47 4 // We always have at least one point 49 for (Point p : points) 50 res += p.tostring() + ", "; 5

52 return res.substring(0, res.length() - 2) + "]"; 5 54 Uppgift 5 Utskriften blir: Uppgift 6 a) static int digit(int n, int k) { int d = -; for (int i = ; i <= k; i++) { if (n == 0) // no more digits return -; d = n % 0; // kth digit n = n / 0; return d; // remaining digits b) static boolean increasing(int n) { int k = ; int d, d2 = -; // dummy initialization for first iteration do { d = d2; d2 = digit(n, k); if (d > d2 && d2!= -) //!(d <= 2) && d2 is a valid digit k += ; while (d2!= -); // d2 == - iff n has less than k digits return true; // all digits checked successfully Uppgift 7 a). error: interfaces cannot be instantiated 2. accepted: subtype to supertype 4

. accepted: subtype to supertype 4. accepted: same type 5. error: supertype to subtype 6. accepted: subtype to supertype 7. error: types not related by inheritance. accepted: subtype to supertype 9. OK: same type 0. error: types not related by inheritance b). true 2. false. false 4. compile-time error: Immutable doesn t have method put Uppgift a) public int multip(g x) { int result = 0; for (G e: elements) if (e == x) result++; return result; b) public boolean permutation(sequence<g> t) { for (G e: this.elements) if (multip(e)!= t.multip(e)) for (G e: t.elements) if (multip(e)!= t.multip(e)) return true; 5