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

Relevanta dokument
Tentamen 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

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

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

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

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

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

Föreläsning 2, vecka 8: Repetition

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Typkonvertering. Java versus C

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

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

Föreläsning 9-10 Innehåll

TENTAMEN OOP

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

TENTAMEN OOP

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

DAT043 Objektorienterad Programmering

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

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

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

"if"-satsen. Inledande programmering med C# (1DV402)

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

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

Tentamen. Lösningsförslag

Tentamen OOP

Tentamen ID1004 Objektorienterad programmering April 7, 2015

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

LÖSNINGSFÖRSLAG TENTAMEN

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

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

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

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

Föreläsning 5-6 Innehåll

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

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Föreläsning 3-4 Innehåll

JAVAUTVECKLING LEKTION 8

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Objektorienterad Programmering (TDDC77)

Den som bara har en hammare tror att alla problem är spikar

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

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

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

Repetition av viktiga begrepp inom objektorienterad programmering

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

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

1 Repetition av viktiga begrepp inom objektorienterad programmering

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Föreläsning REPETITION & EXTENTA

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

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

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

tentaplugg.nu av studenter för studenter

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Tentamen i Objektorienterad programmering

JAVAUTVECKLING LEKTION 4

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

OOP Objekt-orienterad programmering

Del A (obligatorisk för alla)

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

OOP Objekt-orienterad programmering

Del A (obligatorisk för alla)

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

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

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

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Tentamen Grundläggande programmering

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

TENTAMEN OOP

Lösningsförslag till tentamen

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

Tentamen i Algoritmer & Datastrukturer i Java

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

Arrayer (fält)

Föreläsning 13 Innehåll

Laboration A Objektsamlingar

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

TDA550 - Objektorienterad programvaruutveckling, fk

Objektorienterad programutveckling, fk

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

Tentamen , Introduktion till Java, dtaa98, dtea53

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Lösningsförslag till exempeltenta 2

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Föreläsning 1, vecka 8: Att förbereda sig för tentan

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

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)

Transkript:

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-7, TDA540 Dag: 208-0-3, Tid: 4.00-8.00 Uppgift a) class används för en klassdeklaration som är ett mall för att skapa objekt public en modifierare som antyder att enheten (instansvariabel, metod, etc.) är tillgängligt för alla static en modifierare som anger att en enhet (variabel eller metod) tillhör själva klassen och är gemensamt för alla klassens objekt void returtyp som antyder att en metod har inget returvärde int används för att deklarera en variabel som kan spara en heltal new skapar en nytt objekt av given klass boolean används för att deklarera en variabel som kan vara true eller false if används för selektering mellan två satser beroende på en break slutar exekvera nuvarande loop boolesk uttryck for används för att skapa en räknareloop Klass Signatur Returtyp Statisk b) Duplicates main(string[] args) void ja Duplicates noduplicates(int[] list) void ja PrintStream println(int i) void nej

c) 24 int[] list = {3, 3,, 4,,5, 2, 3 25 noduplicates(list); 4 int[] set = new int[list.length]; 5 int size = 0; 6 for (int i = 0; i < list.length; i++) 7 boolean found = false; 8 for (int j = 0; j < size; j++) // size är 0, så hoppar över 4 if (!found) 5 set[size] = list[i]; // size är 0 och list[0] är 3 6 size = size + ; // size är 6 for (int i = 0; i < list.length; i++) // i är 7 boolean found = false; 8 for (int j = 0; j < size; j++) // size är 9 if (set[j] == list[i]) // är sant bådå är 3 0 found = true; break; d) Utskriften: 3 4 5 2 Metoden noduplicates skriver ut alla element som finns i arrayn, utan dubbletter. e) public static int[] noduplicates(int[] list) { int[] set = new int[list.length]; int size = 0; for (int i = 0; i < list.length; i++) { boolean found = false; int j = 0; while(!found && j < size) { if (set[j] == list[i]) found = true; j++; if (!found) { set[size] = list[i]; size = size + ; int[] result = new int[size]; 2

for (int j = 0; j < size; j++) result[j] = set[j]; return result; Uppgift 2 Variabeln m är av typen int men blir initialiserat med ett String värde. Det resulterar i en typfel. En arrays längd kan man läsa av med attributen length, inte med en metodanrop a.length() som i koden. Variabeln j är inkrementerat i for-satsen men har inte deklarerats; det ska vara variabeln i istället. Det saknas en return-sats. Förbättrade versionen: public static int sum_correct(int[] a) { int sum = 0; for (int i = 0; i < a.length; i++) sum += a[i]; return sum; Uppgift 3 a) Utskriften: 2 Fail with c b) Det är klassen Throwable. c) Programmets beteende ändras inte, för den enda undantag som kastas är NumberFormatException som matchar typen Throwable i catch blocket (pga polymorfism). 3

Uppgift 4 class Line extends BasicLine { public Line(float intercept, float slope) { super(intercept, slope); public Line(float intercept) { super(intercept, 0); public boolean ishorizontal() { return getslope() == 0; public boolean parallel(line otherline) { return getslope() == otherline.getslope(); public Line clone() { return new Line(getIntercept(), getslope()); public float y(float x) { return getintercept() + getslope() * x; public float[] cross(line otherline) { if (parallel(otherline)) return null; float[] point = new float[2]; // solving for x: i + s*x = i + s *x // we get: x = (i - i)/(s - s ) float xcross = (otherline.getintercept() - getintercept()) / (getslope() - otherline.getslope()); float ycross = y(xcross); point[0] = xcross; point[] = ycross; return point; 4

Uppgift 5 a) Klassdiagrammet ser ut så här: A B C D E F b). 0 2. 0 3. 0 4. 0 5. 4 6. 0 7. 0 8. 0 c). 0 2. skriver inte ut något 3. 0 4. 0 d). Inkorrekt: ett interface kan inte instansieras 2. Korrekt 3. Inkorrekt: man får en typfel för D är ingen subtyp av C 4. Korrekt 5. Korrekt 6. Inkorrekt: man får en typfel för D är ingen subtyp av F 7. Korrekt 8. Inkorrekt: man får en typfeil för ArrayList<D> är ingen subtyp av ArrayList<E> (even if E är subtyp av D) 9. Inkorrect: en abstrakt klass kan inte instansieras 5