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

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

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

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:

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

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:

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

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548

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

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

Instuderingsfrågor, del D

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

Laboration 4: Digitala bilder

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

Laboration 3. Redovisning Uppgifterna skall vara demonstrerade och godkända av en handledare senast måndag 22/2.

TENTAMEN OOP

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-Java Omtentamina

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

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 för kursen Objektorienterad programvaruutveckling GU (DIT010)

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

Tentamen i Programmering

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

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

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

Laboration 3. I1 Programmerade system, HT15

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

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDAA10 Programmering i Java

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

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

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

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

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

TENTAMEN OOP

Föreläsning 3-4 Innehåll

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

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

OOP Tentamen

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

OOP Tentamen

DAT043 Objektorienterad Programmering

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Del A (obligatorisk för alla)

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

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

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

Föreläsning 8. Klassen String Mer om fält Klassen ArrayList

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

OOP Tenta

Lösningsförslag tentamen FYTA11 Java

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

TDDC77 Objektorienterad Programmering

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.

Objektorienterad programmering

Iteration while-satsen

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Tentamen i Grundläggande programmering STS, åk

Det finns en referensbok (Java) hos vakten 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

PROGRAMMERINGSTEKNIK TIN212

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

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

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

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

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

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

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

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

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

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.

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Instuderingsfrågor, del E

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

Tentamen i Programmeringsteknik I

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Tentamen. Lösningsförslag

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

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

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

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Fält och klassen String

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

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

OOP Omtenta

Tentamen i Grundläggande programmering STS, åk

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

Transkript:

Tentamen för TDA40 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-, TDA40 Dag: 206-0-6, Tid: 4.00-8.00 Ansvarig: Examinator: Alex Gerdes Joachim von Hacht och Christer Carlsson Förfrågningar: Alex Gerdes (alexg@chalmers.se, 070677747) Resultat: Betygsgränser: Siffror inom parentes: Erhålls via Ladok 3:a 24 poäng 4:a 36 poäng :a 48 poäng max 60 poäng Anger maximal poäng på uppgiften Granskning: Tentamen kan granskas på den :e februari 206 (2:00 3:00) i EDIT 628. 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!

Uppgift (2 poäng) Betrakta metoden from nedan: public static void from (int base, int value) { if (value > 0) { from(base, value / base); System.out.printf("%d", value % base); Vad skriver metoden from ut om base är 2 och value är 42? Förklara vad metoden gör. Tips: vad skriver metoden ut med base 0? Uppgift 2 (2 poäng) Vilken utskrift fås då nedanstående program körs? public class AClass { private int x, y; private static int z; public AClass(int a, int b, int c) { x = a; y = b; z = c; @Override public String tostring() { return x + ", " + y + ", " + z; public class TestClass { public static void main(string[] args) { AClass a = new AClass(, 2, 3); AClass b = new AClass(4,, 6); System.out.println(a); System.out.println(b); Uppgift 3 ( poäng) Nedanstående kodavsnitt ger ett kompileringsfel. Förklara vad som är fel och rätta till. do { boolean b = Math.random() < 0.; while (b); Uppgift 4 För att avgöra om ett n-siffrigt tal N är ett Keithtal skapar man en Fibonacci-liknande talföljd som börjar med de n siffrorna i N med den mest signifikanta siffran först. Man fortsätter sedan talföljden med termer som var och en är summan av de n föregående 2

termerna. N är ett Keithtal om N ingår i den på detta sätt konstruerade talföljden och är större än 9. Betrakta exempelvis ett tresiffrigt tal N = 97. Talföljden blir då:, 9, 7, 7, 33, 7, 07, 97, 36,... Eftersom 97 ingår i talföljden så är det ett Keithtal. Om N = 23 då blir talföljden:, 2, 3, 6,, 20, 37, 68, 2,... och kan vi dra slutsatsen att 23 är inget Keithtal, för 23 är inte med i talföljden. Skriv en metod som givet ett heltal n returnerar om talet är ett Keithtal eller inte. Uppgift ( poäng) Din uppgift är att skriva ett program som upprepade gånger läser in ett heltal samt beräknar om talet är ett Keithtal eller inte. 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 (dvs värden mindre än 0) Uppgift 6 Skriv en metod public static int[] getindexofminvalues(int[] vect) som tar ett osorterat heltalsfält vect och returnerar ett nytt fält som innehåller index för samtliga förekomster av det minsta värdet i vect. Exempel Antag att följande deklaration har gjorts int[] arr = {2, 3, 0, 24, 3,, 32, 0, 6; anropet getindexofminvalues(arr) returnerar då fältet {, 4, eftersom 3 är det minsta värdet och detta värde finns i fältet på index och 4. Tips: Det kan vara lämpligt att införa ett par hjälpmetoder. 3

Uppgift 7 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-2, 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[][][] blur(int[][][] samples, int n) som tar en bild samples och returnerar en ny bild med effekten att bilden blir rörelseoskärpa. Detta görs genom att beräkna färgerna i punkten (x, y) i den nya bilden med hjälp av ett så kallade faltningsfilter. Vid användning av faltningsfiltret beräknas ett nytt värde på en bildpunkt genom att, förutom att beakta bildpunkten själv, även beakta närliggande bildpunkter. Ett faltningsfilter kan således anses som en matris. Faltningsfiltret för att skapa en rörelseoskärpa-effekt är en n n diagonal matris med diagonala faktorna n. Till exempel en matrix med storlek : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Filtret anger att det nya värdet i en bildpunkt beräknas genom att multiplicera bildpunktens gamla värde med faktorn i mitten av matrissen (dvs med ) och addera, beroende på faktorna, några närliggande bildpunkter. Metoden blur tar matrisens storlek (n) som en argument. Tips: återigen är det lämpligt att införa hjälpmetoder. Till exempel en metod för att skapa ett filter och en metod för att applicera filtret. Uppgift 8 Skriv en metod som givet en sträng s och ett heltal n genererar en ny sträng med längden n, bestående av slumpvis valda tecken ur s. Om s är den tomma strängen sätts resultatet till den tomma strängen. Du får använda String-metoderna som anges vid nästa frågan. Uppgift 9 Vi vill översätta svenska meningar till I-språket. Detta sker genom att alla vokaler ersättas med ett i. Till exempel: "Hur är läget?" => "Hir ir ligit?" Skapa en klass ILanguage med följande metoder:. private boolean isvowel(char ch) ger sant om ch är en vokal annars falskt. 2. public String toi(string swe) givet en sträng på svenska returneras översättningen till I-språket. Använd metoden från i din lösning. För att lösa uppgifterna är det tillåtet att använda följande metoder från klassen String: 4

char charat(int i) ger tecknet vid index i int indexof(char ch) ger index för tecknet ch eller - 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 - 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 0 Om man har två grupper av tal kan man ibland öka medelvärdet i båda grupperna genom att flytta ett tal från ena gruppen till den andra. Skriv en metod som givet två talgrupper A och B (i form av int[]) skriver ut vilket (om något) tal som skall flyttas vart. Exempel Talgrupper: A = {3,, 2; B = {4, 3, 4, ; Utskrift: Move 3 from B to A! Vi antar att grupperna innehåller max 0 positiva heltal och att maxvärdet för talen är 00. Om ingen ökning av medelvärdet är möjligt skrivs "Impossible" ut. Uppgift Finns i sjön är ett enkelt kortspel för två eller fler deltagare. Spelet går ut på att samla på fyrtal, det vill säga grupper om fyra kort med samma valör. Deltagarna får sju kort var, och resterande kort sprids ut på bordet med baksidan uppåt och utgör sjön. Den spelare som är i tur frågar en valfri motspelare efter kort av en viss valör, och motspelaren måste då lämna ifrån sig alla sina kort av den begärda valören. Saknas sådana kort, svarar motspelaren med frasen finns i sjön, varpå den som frågat får ta upp ett kort från sjön; därefter går turen vidare. Vinnare är den spelare som vid spelets slut har samlat ihop flest fyrtal. Skapa en objektmodell för kortspelet:. Ange 4 lämpliga klasser 2. Hitta något 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. Skapa en metod buildgame som utför arbetet och returnerar hela modellen