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

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

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

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

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

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

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

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

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

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

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

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

Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Tentamen i Grundläggande Programvaruutveckling, TDA548

Instuderingsfrågor, del D

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM DAG: TID: 8:30 13:30

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

TENTAMEN OOP

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

Tentamen i Programmering

Föreläsning 3-4 Innehåll

Laboration 4: Digitala bilder

Institutionen för TENTAMEN CTH VT-13 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM DAG: TID: 8:30 13:30

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

TENTAMEN OOP

PROGRAMMERING-Java Omtentamina

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

PROGRAMMERING-Java TENTAMINA

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

Institutionen för TENTAMEN CTH HT-13 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

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

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

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

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

DAT043 Objektorienterad Programmering

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

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

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

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

Institutionen för TENTAMEN CTH HT-16 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM

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

PROGRAMMERING-JAVA TENTAMINA

OOP Omtenta

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, EDAA10 Programmering i Java

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

Institutionen för TENTAMEN CTH VT-17 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM

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

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

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

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

OOP Tentamen

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

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

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

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

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.

JAVA Mer om klasser och objektorientering

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 FYTA11 Javaprogrammering

I ett program hantera man ofta samlingar av objekt av samma typ.

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

OOP Tentamen

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

PROGRAMMERINGSTEKNIK TIN212

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

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

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

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

TDDC77 Objektorienterad Programmering

TENTAMEN OOP

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Del A (obligatorisk för alla)

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

OOP Omtenta

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

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

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

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

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.

Tentamen i Programmeringsteknik I

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA143. Tentamen för TDA143 PROGRAMMERADE SYSTEM DAG: TID: 14:00 19:00

Laboration 1 - Grunderna för OOP i Java

Objektorienterad programmering

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

OOP Tenta

Lösningsförslag tentamen FYTA11 Java

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

Laboration A Objektsamlingar

Instuderingsfrågor, del E

Transkript:

Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-15, TDA540 Dag: 2016-04-09, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Joachim von Hacht och Christer Carlsson Förfrågningar: Alex Gerdes (alexg@chalmers.se, 0317726154) Resultat: Betygsgränser: Siffror inom parentes: Erhålls via Ladok 3:a 24 poäng 4:a 36 poäng 5:a 48 poäng max 60 poäng Anger maximal poäng på uppgiften Granskning: Tentamen kan granskas på den 25:e april 2016 (12:00 13:00) och 2:e maj 2016 i EDIT 6128. Vi eventuella åsikter om rättningen ange noggrant vad du anser är fel. Hjälpmedel: Var vänlig och: Observera: Cay Horstmann: Java for everyone eller Jan Skansholm: Java direkt med Swing Understrykningar och smärre förtydligande noteringar får finnas. Skriv tydligt och disponera papperet på lämpligt sätt. Börja varje uppgift på nytt blad. Skriv ej på baksidan av papperet. Uppgifterna är ej ordnade efter svårighetsgrad. Titta därför igenom hela tentamen innan du börjar skriva. Alla program skall vara väl strukturerade, lätta att överskåda samt enkla att förstå. Indentera programkoden! Vid rättning av uppgifter där programkod ingår bedöms principiella fel allvarligare än smärre språkfel. Lycka till! 1

Uppgift 1 (3 poäng) Betrakta metoderna nedan: public static void run() { int[] xs = {5, 8, 3, 9, 4; mystery(xs); System.out.println(java.util.Arrays.toString(xs)); public static void mystery(int[] xs) { int l = xs.length; for (int i = 0; i < l/2; i++) { int t = xs[i]; xs[i] = xs[l - i - 1]; xs[l - i - 1] = t; Vad blir utskriften när metoden run exekveras? Förklara vad metoden mystery gör. Uppgift 2 (4 poäng) Vilken utskrift fås då nedanstående program körs? public class P { protected String name; protected int number; public P(String name, int n) { this.name = name; number = n; @Override public String tostring() { return name + " / " + number; public class SV extends P { private int tel; public SV(String name, int n, int m) { super(name, m); tel = n; @Override public String tostring() { return name + " / " + number + " / " + tel; public class MainClass { public static void main(string[] args) { P a = new SV("Johan", 7, 13); SV b = new SV("Anna", 5, 11); System.out.println(a); System.out.println(b); 2

Uppgift 3 (3 poäng) Nedanstående kodavsnitt ger ett kompileringsfel. Förklara vad som är fel och rätta till. public static String storlek(int n) { if (n < 0) return "Negative"; else if (n < 100) return "Small"; else if (n < 1000) return "Large"; Uppgift 4 (6 poäng) En paritetsbit är en binär siffra som anger huruvida antalet bitar med värdet 1 i en given mängd bitar är jämnt (eller udda). Att lägga in paritetsbitar är ett enkelt sätt för feldetektering när man till exempel överför data. Om paritetsbiten inte stämmer med siffergruppen, då vet man att data är felaktigt. Till exempel: 7 databitar byte med jämn paritetsbit 0000000 00000000 1010001 11010001 1101001 01101001 1111111 11111111 Skriv en metod som givet ett positivt heltal n med n 127 returnerar ett byte (ett heltalsfält med ettor och nollor) med en jämn paritetsbit som finns på index 0. Till exempel, ett metodanrop med talet 42 ger {1,0,1,0,1,0,1,0 som svar. Binär representation av 42 i 7 databitar är 0101010 och antalet ettor är udda och därför lägger man till en 1 på index 0: 10101010. Antar att det finns en metod int[] bin(int n, int d) som översätter ett heltal n till binär med d databitar. Uppgift 5 (6 poäng) Din uppgift är att skriva ett program som upprepade gånger läser in ett binär tal, som representeras med en sträng ettor och nollor, och skriver ut om paritetsbiten stämmer med resten av siffergruppen. Du får själv välja om du vill göra in- och utmatning via dialogrutor eller använda System.in respektive System.out. För att erhålla full poäng på uppgiften: skall programmet utformas på så sätt att inläsningen upprepas tills användaren avbryter exekveringen (vid användning av dialogrutor genom att användaren trycker på Cancel-knappen och vid användning av System.in genom att användaren lämpligen ger ctrl-z eller ctrl-c), skall talet läsas i en inläsningssats (dvs ett Scanner-objekt skall användas) skall programmet ge felutskrift om ett ogiltigt indata ges (till exempel ett värde som är inte binär) 3

Uppgift 6 (7 poäng) Skriv en metod public static List<Integer> difference(list<integer> xs, List<Integer> ys) som tar två osorterade listor och returnerar en ny lista som tar bort den första förekomsten (om den finns) av varje element i ys från xs. Exempel Antag att följande deklaration har gjorts public static List<Integer> tolist(int[] xs) { List<Integer> list = new ArrayList<>(); for (int x : xs) list.add(x); return list; int[] xs = {1, 6, 2, 1, 4, 1, 2, 1, 8; int[] ys = {1, 2, 1, 4; anropet difference(tolist(xs), tolist(ys)) returnerar en lista med följande element: [6, 1, 2, 1, 8]. Obs att två förekomster av 1 har tagits bort och att fortfarande en förekomst av 2 finns kvar. Uppgift 7 (8 poäng) En digital bild kan representeras som ett tvådimensionellt fält av bildpunkter. I en digital färgbild utgörs varje bildpunkt av tre heltalsvärden i intervallet 0-255, där de enskilda värdena representerar intensiteten av färgerna rött, grönt och blått. En färgbild kan avbildas med ett tredimensionellt fält av typen int[][][]. Den första dimensionen definierar bildens höjd, den andra dimensionen definierar bildens bredd och den tredje dimensionen representerar färgerna rött, grönt och blått. Din uppgift är att skriva en metod public static int[][][] scale(int[][][] samples, int n) som tar en bild samples och returnerar en ny bild som är n gånger större i varje dimension. Varje pixel blir alltså ersätt med n n pixels av samma färg. Till exempel en bild med storlek 3 som blir 2 gånger större: p 11 p 11 p 21 p 21 p 31 p 31 p 11 p 11 p 21 p 21 p 31 p 31 p 11 p 21 p 31 p 12 p 22 p 32 p 13 p 23 p 33 2 = p 12 p 12 p 22 p 22 p 32 p 32 p 12 p 12 p 22 p 22 p 32 p 32 p 13 p 13 p 23 p 23 p 33 p 33 p 13 p 13 p 23 p 23 p 33 p 33 Uppgift 8 (8 poäng) I vissa fall måste man översätta en URL, till exempel när man använder reserverade tecken i en HTTP-request. Att översätta en URL sker genom att ersätta alla reserverade tecken med ett escape -tecken som börjar med en procent tecken, till exempel: 4

"http://alex.nl/age?input=25" => "http%3a%2f%2falex.nl%2fage%3finput%3d25" Skapa en klass Encode med följande metoder: 1. private static String escape(char ch) som returnerar en sträng enligt nedanstående tabell: : "\%3A" / "\%2F"? "\%3F" = "\%3D" om tecknet inte finns med då returnerar metoden en sträng med enbart ch. 2. public static String encodeurl(string url) som översätter en URL så att alla reserverade tecken är översatt. Använd metoden från 1 i din lösning. För att lösa uppgifterna är det tillåtet att använda metoder från klassen String, till exempel: char charat(int i) ger tecknet vid index i int indexof(char ch) ger index för tecknet ch eller -1 om tecknet saknas int length ger längden av strängen String substring(int start, int end) ger en delsträng från start till end - 1 String substring(int start) ger en delsträng från start till strängens slut String[] split(string str) delar upp en sträng i ett fält av delsträngar utifrån ett visst tecken, till exempel: "aaa:bb:cccc:dd".split(":") -> {"aaa", "bb", "cccc", "dd" Uppgift 9 (7 poäng) Skriv en metod copy tar en sträng och ett heltal n som argument och returnerar en sträng med n kopior av strängen. Använd copy metoden för att implementera en metod julgran som skriver ut följande om man anropar metoden så här julgran(6):...*......*-*......*-*-*.....*-*-*-*...*-*-*-*-*. *-*-*-*-*-* Parametern till metoden julgran bestämmer antal rader text. I ovanstående exempel är det 6, om man använder ett större tal då får man fler som blir också längre. Det skapas en triangel med stjärnor med streck emellan och inneslutet av punkter. Med lite fantasi liknar utskriften en julgran. Om parametern är 1 då skriver metoden bara ut en enstaka stjärna: *. Om parametern är mindre eller lika med 0 då skriver metoden ingenting ut. 5

Uppgift 10 (8 poäng) Vi vill samlar all din musik i ett musikbibliotek. Istället för att rota bland högar med CD-skivor, eller söka igenom digitala filer, vill vi använda ett program för att kolla om en låt, artist, etc. finns med i biblioteket. Musikbiblioteket borde innehålla följande information: album, artist, genre och låt. Skapa en objektmodell för musikbiblioteket: 1. Ange 4 lämpliga klasser 2. Hitta något (eller några) lämpligt attribut (instansvariabel) för varje klass 3. Skapa konstruktorer för varje klass och visa hur du med hjälp av dessa kan koppla ihop hela modellen. 6