PROGRAMMERINGSTEKNIK TIN212

Relevanta dokument
OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

PROGRAMMERINGSTEKNIK TIN212

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

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

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

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

Tentamen i Programmeringsteknik I

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

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Konstruktion av klasser med klasser

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

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

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

Lab5 för prgmedcl04 Grafik

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

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

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

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

Föreläsning 13 Innehåll

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. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Tentamen i Programmeringsteknik I, ES,

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

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

TENTAMEN OOP

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Klasshierarkier - repetition

2D1339 Programkonstruktion för F1, ht 2003

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

Properties. Användbara metoder som kan anropas i propertychanged:

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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

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

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

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

Objektorienterad programmering D2

Chapter 4: Writing Classes/ Att skriva egna klasser.

Tentamen i Programmeringsteknik MN

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

OOP Objekt-orienterad programmering

OOP Tenta

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]

2D1339 Programkonstruktion för F1, ht 2004

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

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

a. Vilka av följande påståenden är riktiga? Observera att felaktigt valda påståenden ger poängavdrag. (4p)

Tentamen i Grundläggande programmering STS, åk

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

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

DAT043 - Föreläsning 7

LyckaTill önskar Anna

Föreläsning 5-6 Innehåll

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

2D1339 Programkonstruktion för F1, ht 2003

OOP Objekt-orienterad programmering

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

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

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

Arv. Objektorienterad och komponentbaserad programmering

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

Kursplanering Objektorienterad programmering

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

Laboration 1 - Grunderna för OOP i Java

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

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

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

Att öva på och förstå ett program med flera samverkande klasser.

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

PROGRAMMERINGSTEKNIK för F1 och TM1 (TIN212)

Laboration 3, uppgift En klass för en räknare

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

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

Design av en klass BankAccount som representerar ett bankkonto

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

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

OOP Tentamen

OOP Tentamen

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

Objekt och referenser

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

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

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

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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

DD1342 Programkonstruktion för F1,

Dugga i Grundläggande programmering STS, åk

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.

Java, klasser, objekt (Skansholm: Kapitel 2)

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

Transkript:

Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum: 2018-08-28 Tid: 8.30-13.30 (OBS 5 tim) Ansvarig lärare: Robin Adams tel. 0768-564864 Tentamen är uppdelad i två delar. Om du har klarat Duggan behöver du lösa bara Del 2. Om du har inte klarat Duggan så måste du lösa både Del 1 och del2. Betygsgränser: Om du har klarat Duggan: 3 = 15p, 4 = 20p, 5 = 25p, max 30p Om du har inte klarat Duggan: 3 = 28p, 4 = 38p, 5 = 48p, max 60p Hjälpmedel: Skansholm, Java direkt med Swing, Studentlitteratur, eller Bravaco, Simonson, Java Programming: From the Ground up (Understrykningar och mindre anteckningar i boken är tillåtna.) Inga kalkylatorer är tillåtna. Tänk på: att skriva tydligt och disponera papperet på ett lämpligt sätt. att börja varje ny uppgift på nytt blad. Skriv endast på en sida av papperet. Skriv den (anonyma) kod du fått av tentamensvakten på alla blad. De råd och anvisningar som givits under kursen skall följas vid programkonstruktionerna. Det innebär bl.a. att onödigt komplicerade, långa och/eller ostrukturerade lösningar i värsta fall ej bedöms.

DEL 1 Svara på dessa uppgifter endast om du inte har klarat Duggan. Uppgift 1 (3 poäng) Sant eller falskt? Ingen motivering behövs. (a) Två referensvariabler kan referera till samma objekt. (1p) (b) En underklass ärver alla metoder från sin superklass utom konstruktorer. (1p) (c) Även statiska metoder kan överskuggas. (1p) Uppgift 2 (6 poäng) a) Vad skrivs ut av följande satser? (3p) int s = 0; for (int i = 3; i < 10; i++) { if (i == 5) if (i == 7) s = s + i; System.out.print(s); b) Vad skrivs ut av följande satser? (3p) String s = ; for (int i = 3; i < 10; i++) { if (i == 5) if (i == 7) s = s + i; System.out.print(s); Uppgift 3 (9 poäng) Du ska implementera en klass som simulerar ett bankkonto. Klassen ska innehålla följande: fem instansvariabler: en som håller reda på kontonummer (int), en som håller reda på kundens namn (String), en som håller reda på saldot (double), en som håller reda på övertrasseringsgräns (double), och en som håller reda på datumet då kontot skapades.

en konstruktor som skapar ett nytt konto med namn och övertrasseringsgräns som parametrar. Startsaldot ska vara 0 och kontonumret och skapelsedagen ska tilldelas automatiskt så att varje konto har ett unikt nummer. fem getter -metoder för instansvariablerna en metod public void deposit(double amount) som sätter in pengar på kontot en metod public void withdraw(double amount) som tar ut pengar från kontot, men endast om det inte tar saldot under tröskelvärdet. Uppgift 4 (12 poäng) Skriv en funktion void rotate(int[] list, int k) som roterar en lista k steg. Till exempel är [1,2,3,4,5,6] roterad två steg [3,4,5,6,1,2]. Du får fler poäng om din metod inte skapar ett nytt objekt.

DEL 2 Alle studenter måste svara på den här delen. Uppgift 5 (6 poäng) Dessa korta exempel innehåller vart och ett något fel som gör att man inte kan kompilera dem. Ange för varje exempel vad det är för ett fel (skriv radnummer också) och tala om hur man skulle kunna rätta till felet. Programexemplen är helt oberoende av varandra och varje klass och gränssnitt ligger i en egen fil med ett korrekt namn. a) 1 public interface Fordon{ 2 public double beräknafart(double x, double y); 3 public void kör(); 4 5 6 public class Tåg implements Fordon { 7 public double beräknafart(double x, double y) { 8 return (x*y) / (x*y + (1-x)*(1-y)); 9 10 b) 11 public class Instrument { 12 protected int n; 13 public Instrument(int n) { 14 this.n = n; 15 16 17 18 public class Fiol extends Instrument { 19 public Fiol(int n) { 20 this.n = n; 21 22

c) 23 public interface Bil { 24 public int hastighet(); 25 26 public interface Båt { 27 public double hastighet(); 28 29 public class Amfibie implements Bil, Båt { 30 public int hastighet() { 31 return 70; 32 33 public double hastighet() { 34 return 5.0; 35 36 Uppgift 6 (12 poäng) Konstruera en klass Diagram som ska vara en subklass till standardklass JPanel. Objekt av klassen Diagram ska kunna visa cirkeldiagram liknande det i figuren. (Du ska inte konstruera hela programmet, bara klassen Diagram.) Klassen Diagram ska ha en konstruktor samt en metod med namnet setvalues. Både konstruktorn och metoden ska ha två arrayer (fält) som parametrar. Den första arrayen ska innehålla de värden som ska illustreras i diagrammet. Det kan t.ex. vara antalet röster i ett val. Den andra arrayen ska innehålla de färger som ska användas i diagrammet. De båda arrayerna måste ha lika många element. Om så inte är fallet ska din klass generera en exception av typen IllegalArgumentException. Klassen Diagram ska vara så utformad att den grafiska komponenten automatiskt ritas om när fönstret ändras eller när setvalues eller konstruktorn anropas. Då ska cirkelns diameter bestämmas av den kortaste av komponentens bredd och höjd. (Du behöver inte i denna uppgift ta hänsyn till eventuella borders.) Rita de olika "tårtbitarna" medurs och börja längst upp i cirkeln (klockan 12) med det värde och den färg som ligger först i arrayerna. Tips: Låt klassen ha två instansvariabler. Den första kan vara en array där de olika mätvärdena skalats om så att deras summa blir 360. Den andra instansvariabeln kan vara en referens till arrayen med färgerna.

Uppgift 7 (12 poäng) Ett företag har lagrat ett register över sina anställda i en textfil. För varje anställd finns det tre rader i filen. Den första raden innehåller den anställdas personnummer, den andra raden personens namn och den tredje namnet på den avdelning där personen arbetar. Uppgiften är att skriva ett program som läser in informationen i filen och lägger den i en avbildningstabell i vilken söknycklarna är personnumren och värdena är den information som finns på de övriga två raderna för varje anställd. Denna information ska internt i programmet sparas i objekt av klassen Person som har följande utseende: class Person { public String namn; public String avdelning; public Person(String na, String avd) { namn = na; avdelning = avd; Programmet ska först fråga efter filens namn i en dialogruta. Om filen inte finns ska programmet ändra texten i dialogrutan och be användaren försöka igen. Detta ska upprepas tills användaren angett ett korrekt filnamn eller valt av avsluta genom att klicka på knappen Avbryt i dialogrutan. När all information i filen lästs in och lagts i avbildningstabellen ska programmet upprepade gånger be användaren ange ett personnummer. Inläsningen ska ske med hjälp av en dialogruta. För varje angivet personnummer ska programmet slå upp den efterfrågade personen i avbildningstabellen och visa all information om honom eller henne i en annan dialogruta. Använd en standardklass för att konstruera avbildningstabellen. Välj en klass som gör att sökningarna i tabellen blir så snabba som möjligt. Personerna behöver inte ligga sorterade i tabellen.