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



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

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

Objektorienterad programmering D2

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:

Lösningsförslag till tentamen

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

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Tentamen OOP

Tentamen, EDA501 Programmering M L TM W K V

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

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.

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

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

Tentamen i Objektorienterad programmering

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

Lösningsförslag till tentamen

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen, EDAA20/EDA501 Programmering

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

Föreläsning 1 & 2 INTRODUKTION

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

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

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

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

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

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

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

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

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

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

PROGRAMMERING-Java TENTAMINA

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

Instuderingsfrågor, del D

Föreläsning 5-6 Innehåll

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

Objektsamlingar i Java

Tentamen i Programmering

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

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

PROGRAMMERING-JAVA TENTAMINA

Lösningsförslag till tentamen

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Föreläsning 3-4 Innehåll

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

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

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Programmering A. Johan Eliasson

PROGRAMMERINGSTEKNIK TIN212

Editering, Kompilering och Exekvering av Javaprogram

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 i Grundläggande programmering STS, åk

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

DELPROV 1 I DATAVETENSKAP

Övningar Dag 2 En första klass

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

OOP Tentamen

Objektorienterad programmering i Java

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

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

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

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

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

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

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

DAT043 Objektorienterad Programmering

TENTAMEN OOP

Tentamen, EDAA10 Programmering i Java

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

Lösningsförslag till tentamen

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:

Tentamen Datastrukturer D DAT 036/DIT960

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

Tentamen i Algoritmer & Datastrukturer i Java

Testning. 1. Inledning

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

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

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.

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

Iteration while-satsen

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

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

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

LyckaTill önskar Anna

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

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

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

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

Transkript:

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-17 TDA143 Tentamen för TDA143 PROGRAMMERADE SYSTEM DAG: 15-04-17 TID: 8:30 13:30 Ansvarig: Christer Carlsson, ankn 1038 Förfrågningar: Resultat: Christer Carlsson erhålls via Ladok Allmän info: tentamen är uppdelad i två delar: del 1 omfattar översikt av datateknik och del 2 omfattar programmering Betygsgränser: 3:a 10 poäng på del 1 och 26 poäng på del 2 4:a 13 poäng på del 1 och 36 poäng på del 2 5:a 16 poäng på del 1 och 48 poäng på del 2 maxpoäng 20 poäng på del 1 och 60 poäng på del 2 Siffror inom parentes: Granskning: Hjälpmedel: Var vänlig och: anger maximal poäng på uppgiften. Måndag 25/5 kl 12-13 och tidag 26/5 kl 12-13, rum 6128 i EDIT-huset. En valfri lärobok i Java eller de på kursen utdelade föreläsningsanteckningarna (OH-bilderna) som behandlar programmeringsdelen av kursen. Förtydligande noteringar får finnas i boken resp. föreläsningsanteckningarna. Skriv tydligt och disponera papperet på lämpligt sätt. Börja varje uppgift på nytt blad. Skriv ej på baksidan av papperet. Observera: 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å. Vid rättning av uppgifter där programkod ingår bedöms principiella fel allvarligare än smärre språkfel. På de programmeringsuppgifter som ingår i tentamenstesen kan vissa poäng erhållas även om ett fullständigt program inte redovisas, detta kräver dock att en algoritm som löser problemet presenteras. LYCKA TILL!!!!

Uppgift 1. Denna uppgift består av 10 flervalsfrågor. Frågorna skall besvaras med tre aletrnativ. Ett korrekt svar ger 1 poäng, ett felaktigt svar ger -1/3 poäng och ett utelämnat svar ger 0 poäng. Totalt på uppgiften kan aldrig minuspoäng erhållas. 1 ) Vilket talområde har ett 8-bitarstal på tvåkomplementsform? a) [0, 255] b) [-127, 128] c) [-128, 127] 2) I vilken ordning går datan mellan kommunikationslagrerna när du exempelvis skickar ett meddelande? a) Applikationslagret <--> Nätverkslagret <--> Länklagret <--> Transportlagret b) Applikationslagret <--> Transportlagret <--> Länklagret <--> Nätverkslagret c) Applikationslagret <--> Transportlagret <--> Närverkslagret <--> Länklagret 3) Vilken av följande komponenter ingår inte operativsystemets kärna? a) Window manager b) File managern c) Memory manager 4) För att överbelasta specifika webbplatser, så kallad DOS-attacker, använder sig hackers ofta av a) Trojanska hästar b) Datormaskar c) Logiska bomber 5) Vilken tidskomplexitet har nedanstående algoritm? int value = 0; for (int i =1; i <= n; i = i + 1) value = value + i; for (int j =1; j <= n; j = j + 2) value = value + j * j; for (int k =1; k <= n; k = k + 1) value = value + k * k * k; a) Θ(n) b) Θ(n 2 ) c) Θ(n 3 ) 6) Hur många löv kan ett binärt träd maximal ha om trädet innehåller 7 stycken interna noder ( = noder som inte är rot eller löv)? a) 7 b) 8 c) 9 7) JPEG innehåller metoder som komprimerar bilder. Hur mycket komprimeras vanligtvis en bild. a) 2-3 gånger b) 10-30 gånger c) 50-60 gånger 8) Teknik för att upptäcka mönster i stora datamängder kallas för a) Data checking b) Data mining c) Data plottering 9) Vilken testningsmetod används vid leveranstest? a) white-box testning b) black-box testning c) både white-box och black-box testning 10) Inom datorgrafik modelleras 3D-objekt med hjälp av: a) Trianglar b) Rektanglar b) Pentagoner (10 poäng)

Uppgift 2. Förklara vad public-key encryption är och hur det går till. Uppgift 3. Förklara fenomenen overflow och trunkering. Uppgift 4. Följande sorterade datasekvens är given: 5, 36, 167, 229, 412, 1039, 3556, 4843, 9876, 10329, 15443 a) Hur många jämförelser behövs göras för att hitta talet 9876 när sekventiell sökning används? b) Hur många jämförelser behövs göras för att hitta talet 9876 när binärsökning används? Ange även vilka jämförelser som utförs. c) Är binärsökning alltid snabbare än sekventiell sökning? Motivera ditt svar. Uppgift 5. Skriv ut sanningstabellen för nedanstående krets. Inför nödvändiga beteckningar. XOR NOR AND OR Uppgift 6. Antag att du har följande databastabell: Allsvenskan: Match nr Hemmalag Bortalag Vinnare 37 IFK Göteborg Halmstad IFK Göteborg 43 Elfsborg BK Häcken BK Häcken 20 Elfsborg IFK Göteborg Elfsborg 53 Malmö FF IFK Göteborg IFK Göteborg Hur se tabellen ut som erhålls från nedanstående SQL-query? SELECT Hemmalag, Bortalag FROM Allsvenskan WHERE Bortalag = 'IFK Göteborg' AND Vinnare = 'IFK Göteborg'

Uppgift 7. a) Vad skrivs ut när följande applikation exekveras? public class Uppgift7a { public static void increase(int n) { n = n + 1; } //increase public static void increase(int[] a) { for (int i = 0; i < a.length; i = i + 1) a[i] = a[i] + 1; } //increase DEL 2: Programmeringsteknik public static void main(string[] args) { int[] v = {1, 2, 3, 4}; increase(v); System.out.println(java.util.Arrays.toString(v)); increase(v[0]); System.out.println(java.util.Arrays.toString(v)); }//main } //Uppgift7a b) Betrakta nedanstående klass public class Square { private int sidelength; private int area; public Square(int initiallength) { sidelength = initiallength; area = sidelength * sidelength; }//constructor public int getarea() { return area; }//getarea public void grow() { sidelength = 2 * sidelength; }//grow }//Square Klassen innehåller ett logiskt fel! Lokalisera, förklara och korrigera felet. c) Vad skrivs ut när nedanstående program exekveras? public class Uppgift7c { public static void main(string[] args) { int number = 123456; System.out.println(mystery(number)); }//main public static int mystery(int value) { int res = 0; while (value!= 0) { res = res*10 + value%10; value = value / 10; } return res; }//mystery }//Uppgift7c

d) Vad skrivs ut när nedanstående program exekveras? public class Uppgift7d { public static void main(string[] args) { System.out.println(methodUnknown("the cat sang", 't')); }//main private static int methodunknown(string str, char c) { int it = 0; int x = str.indexof(c); while (x > -1) { it = it + 1; str = str.substring(0, x) + str.substring(x + 1, str.length()); x = str.indexof(c); } return it; }// methodunknown }//Uppgift7d Uppgift 8 BMI (Body Mass Index) är ett tal som anger ifall man väger för mycket eller för litet. BMI-talet beräknas som vikten dividerat med längden i kvadrat (vikt / längd 2 ), där vikten anges i kilogram och längden i meter. Om man t ex väger 68.5 kg och är 176 cm lång så blir BMI = 68.5 / 1.76 2 vilket är ungefär 22.11 (ett BMI-tal mellan 19 och 24 betraktas som idealvikt). Din uppgift är att skriva ett program som upprepade gånger läser in en vikt i kilo och en längd i meter och skriver ut det erhållna BMI-talet. 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 (se exemplen nedan). Exekveringen av programmet avbryts 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. För att erhålla full poäng på uppgiften: skall vikten och längden göras i en inläsningssats (dvs ett Scanner-objekt skall användas). skall programmet ge felutskrift om ogiltigt indata ges (dvs negativa värden). skall utskriften av BMI-talet anges med exakt 2 decimaler. skall programmet innehålla en metod public static double bmi(double kilo, double meter) som beräknar BMI-talet. Med användning av dialogrutor Med användning av System.in resp System.out Ge vikt i kilo och längd i meter: 82.5 1.77 BMI-värdet är 26.33 Ge vikt i kilo och längd i meter: 82.5-1.77 Ogiltig indata! Ge vikt i kilo och längd i meter: (10 poäng)

Uppgift 9. Kalle Kula, som är en inbiten fotbollsentusiast, vill ha ett dataprogram för att hålla reda på resultaten i de olika fotbollsserierna. Din uppgift är att hjälpa honom att skapa en klass FotballTeam. För varje lag vill Kalle lagra följande uppgifter: - lagets namn (en sträng) - antalet spelade matcher (ett heltal) - antalet gjorda mål (ett heltal) - antalet insläppta mål (ett heltal) - antal poäng (ett heltal) Klassen skall innehålla en konstruktor som har lagets namn som parameter metoder för att avläsa instansvariablerna en metod void registermatch(int scoredgoals, int concededgoals) som uppdaterar berörda instansvariabler. Vid vinst erhålls 3 poäng, vid oavgjort 1 poäng och vid förlust 0 poäng. en metod String tostring() som ger en strängrepresentation av laget på formen: IFK Göteborg 15 26-12 4 en metod int compareto(fotballteam otherteam) som jämför det aktuella lagets resultat med resultatet för laget otherteam. Metoden skall returnera värdet 1 om det aktuella laget har bättre resultat än otherteam, värdet 0 om resultaten är lika och värdet -1 om otherteam har bättre resultat. Vid jämförelsen är i första hand lagens poäng avgörande, i andra hand lagens målskillnad och i tredje hand flest gjorda mål. (12 poäng) Uppgift 10. a) Skriv en metod public static ArrayList<FotballTeam> loss(arraylist<fotballteam> teams) som tar lista teams som innehåller objekt av klassen FotballTeam (se uppgift 9 ovan) och returnerar en ny lista som innehåller de element i listan teams vars målskillnad är negativ. (6 poäng)

b) Ett ljud kan digitaliseras genom att de analoga ljudsignalerna samplas vid diskreta tidpunkter. En vanlig standard för digitaliserad musik är en samplingsfrekvens på 441 khz (alltså 44100 avläsningar per sekund). Volymen på ett ljud beror av amplituden på varje värde i ljudet. Amplituden av ett värde är värdets absolutbelopp. Är t.ex. värdet -2354 blir amplituden 2354 och är värdet 4576 blir amplituden 4576. Din uppgift är att skriva en metod public int[] limitamplitud(int[] samples, int limit) som tar ett heltalsfält samples som innehåller digitaliserat ljud och skapar ett nytt heltalsfält som är en kopia av samples, men där amplituden inte överskrider inparametern limit. Exempel: Antag att följande deklaration har gjorts int[] sound = {40, 3532, 67, -2845, -15, -3089, 2389, 1078, -437, 33, 15, -32, 2030, 3768} Ett anrop av limitamplitud(sound, 2500) skall då returnera följande fält {40, 2500, 67, -2500, -15, -2500, 2389, 1078, -437, 33, 15, -32, 2030, 2500} (6 poäng) c) En digital färgbild representeras som ett tvådimensionellt fält av bildpunkter, där varje bildpunkt utgörs av tre heltalsvärden i intervallet 0-255. De enskilda värdena i en bildpunkt representerar intensiteten av färgerna rött, grönt och blått. En enkelt sätt att göra ett fotomontage med bra kvalité är att fotografera objekt/föremålet man vill klistra in i ett annat fotografi, mot en enfärgad bakgrund. I figurerna nedan har vi till vänster fotografit med föremålet som vi vill klistra in i det mittersta fotografit och till höger har vi resultatet. Din uppgift är att skriva en metod public static int[][][] montage(int[][][] foreground, int[][][] background) som tar två digital färgbilder foreground samt background och returnerar en ny digital färgbild i vilken den enfärgade bakgrunden i bilden foreground har ersatts med motsvarande bildpunkter i bilden background. Du får anta att foreground och background har samma storlek. Vidare gäller att bakgrundsfärgen i bilden foreground är maximalt grön, dvs bildpunktens värde är [0, 255, 0]. (7 poäng)

Uppgift 11. Uppgiften är att skriva ett program som skapar ett fönster med nedanstående utseende: När användaren trycker på någon av knapparna skall motsvarande lands flagga ritas upp med korrekta färger. Flaggan överst i fönstret skall beskrivas i en egen klass med namnet Flag. Denna klass skall vara en subklass till standardklassen JPanel. Om fönstrets storlek förändras skall knapparna alltid vara kvar längst ner och flaggans storlek skall ändras så att den fyller ut resten av fönstret. a) Konstruera klassen Flag. De tre fälten i flaggan är lika stora och det skall vara möjligt att ändra färgerna på dessa fält (för att erhålla de olika ländernas flaggor). b) Konstruera fönstret med flaggan och knapparna. Observera att du kan lösa denna deluppgift utan att du gjort deluppgift a) genom att anta att klassen Flag redan finns. Övriga upplysningar: Från vänster till höger är färgerna i den franska flaggan blå-vit-röd, i den italienska grön-vit-röd och i den belgiska svart-gul-röd. (11 poäng)