Tentamen i Grundläggande Programvaruutveckling, TDA548

Relevanta dokument
Tentamen i Grundläggande Programvaruutveckling, TDA548

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, 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

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

Tentamen Programmering fortsättningskurs DIT950

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

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

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

PROGRAMMERING-JAVA TENTAMINA

Värde och typ? Problem. Vad skrivs ut? Referenssematik (1) Joachim von Hacht. Förklara (i detalj)! int x; int y; x = y = 1; out.println(x + ":" + y);

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

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.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

PROGRAMMERING-Java TENTAMINA

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

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

TENTAMEN OOP

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

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

Tentamen, Algoritmer och datastrukturer

Objektorienterad programmering

PROGRAMMERING-Java Omtentamina

Tentamen OOP

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

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

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

Objektorienterad programmering i Java

Tentamen i Algoritmer & Datastrukturer i Java

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

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

Instuderingsfrågor, del D

TENTAMEN OOP

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

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 2, vecka 8: Repetition

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

OOP Objekt-orienterad programmering

Tentamen i Programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

Fält och klassen String

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

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

Objektsamlingar i Java

Bedömning av kontrollskrivning, EDA016 Programmeringsteknik

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

Dugga Datastrukturer (DAT036)

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

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.

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

Föreläsning 7. Fält Klassen String

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

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 ID1004 Objektorienterad programmering April 7, 2015

Erfarenheter från labben

Objektorienterad Programkonstruktion

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.

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

Tentamen i Programmeringsteknik I

Del A (obligatorisk för alla)

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

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

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

HI1024 Programmering, grundkurs TEN

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Objektorienterad programmering D2

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

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

DD1342 Programkonstruktion för F1,

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Lösningar för tenta 3 DAT043,

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

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Laboration A Objektsamlingar

DAT043 Objektorienterad Programmering

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

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 3-4 Innehåll

Tentamen TEN1 HI

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

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

Tentamen, EDAA10 Programmering i Java

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

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Tentamen i Programmeringsteknik I,, KandMa/Fy,

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

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

Föreläsning 7-8 Innehåll

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

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

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

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

Transkript:

Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5 : 48-60 (max 60) Lärare: Joachim von Hacht/Magnus Myreen. Någon besöker ca 15.00 och 16.30, tel. 031/7721003 Granskning: Anslås på kurssida. Instruktioner: För full poäng på essä-frågor krävs ett läsbart, begripligt och heltäckande svar. Generellt 1p för varje relevant aspekt av problemet. Oprecisa eller alltför generella (vaga) svar ger inga poäng. Konkretisera och/eller ge exempel. Det är aldrig någon risk att vara övertydlig! Det räcker med enbart relevanta kodavsnitt, övrig kod ersätts med... (aldrig import, main-metod, etc...) Överkomplicerade lösningar kan ge poängavdrag. Vi utgår från att användaren alltid skriver rätt och/eller gör rätt (d.v.s ingen felhantering behövs). Om felhantering skall ingå anges detta specifikt. LYCKA TILL... 1

1. Vad avses med? 4p a) Klassmetod b) Typfel Förklara med en eller ett par meningar, du får gärna förtydliga med en skiss eller med kod. 2. Vilka av raderna 1-5 nedan kompilerar ej? Motivera varför! 2p out.println(any(1, 1)); // 1 double any(int i, double d) { // 2 return i + d; // 3 double any(double d, int i) { // 4 return d + i; // 5 3. Skriv en metod, sumfib, som givet antalet termer, n > 0, returnerar summan av n termer från serien 1 1 + 1 1 + 1 2 + 1 3 + 1 5 + 1 8 + 1 13 +... 4p Exempel: out.println(sumfib(10)); // Ger 3.3122872225813405 4. Skriv en metod som givet en icke tom array med heltal returnerar en array med alla ledare i den givna arrayen. En ledare definieras som ett element där alla element till höger om är mindre än ledaren. Elementet längst till höger räknas alltid som en ledare. För full poäng krävs en lösning utan nästlade loopar. Exempel: 8p Orginal-array Resultat-array (ledarna) [14, 9, 11, 7, 8, 5, 3] [14, 11, 8, 5, 3] [1, 2, 3, 4, 5] [5] [5, 4, 3, 2, 1] [5, 4, 3, 2, 1] [5, -4, 3, 2, 1] [5, 3, 2, 1] [1, 1, 1, 1] [1] [1] [1] 2

5. Skriv en metod, sameends, som givet en sträng returnerar den längsta icke-överlappande identiska sekvens som inleder och avslutar strängen. Om någon sådan sekvens inte existerar returneras tomma strängen. 6p Insträng Inledande/Avslutande sekvens "a" "" (överlappar, sekvens saknas) "aa" "a" "aaa" "a" "abxab" "ab" "ababxabab" "abab" "ababxabcb" "" (sekvens saknas) Tillåtna metoder från olika klasser: String - charat(int i), ger tecknet vid index i. - indexof(char ch), ger index för tecknet ch, -1 om tecknet saknas. - length() ger längden av strängen. - substring(int start, int end), ger en delsträng från start (inkl.) till end-1. - substring(int start), ger en delsträng från start (inkl.) till strängens slut. - tochararray(), gör om strängen till en array med tecken - split(string str), delar upp en sträng i en array av delsträngar utifrån ett visst tecken. Returnerar en String-array (String[]) Exempel "aaa:bb:cccc:dd".split(":") -> [ "aaa", "bb", "cccc", "dd" ] StringBuilder - append(string s), lägger till strängen s sist i Stringbuilder-objektet. - append( char ch ), som ovan - setlength(), sätter aktuell längd, setlength(0) raderar alla tecken. - tostring(), omvandlar StringBuilder-objektet till en String. Character - isdigit() får användas (klassmetod). Metoden returnerar sant för tecknen 0-9. Integer - valueof(string s) får användas (klassmetod). Metoden omvandlar en sträng till ett heltal. OBS! Att metoden kastar ett undantag för tomma strängen 3

6. Rita en bild som visar variabler, värden, referenser och objekt samt hur dessa förhåller sig till varann före, respektive efter anropet av metoden doit. Rita som vi ritat under föreläsningarna, lådor, pilar o.s.v. Ni måste rita! Ange dessutom vad som skrivs ut. int[] a = new int[]{1, 2, 3; M m1 = new M(a, "abc"); M m2 = new M(a, "def"); // Before: How does it look after this line? 8p doit(m1, 0, m2.a[2], m2.s); // The call out.print(m2); // After: What will be printed? How does it look? void doit(m m, int i, int v, String s) { m.a[i] = v; m.s = s; class M { int[] a; String s; M(int[] a, String s) { this.a = a; this.s = s; public String tostring(){ return s + Arrays.toString(a); 7. Skriv följande klasser: 8p a) En klass Particle. Objekten skall ha en position i 2D och en färg. Klassen skall ha en konstruktor som sätter alla värden och en kontruktor som kan skapa en kopia givet ett annat Particle-objekt. b) En klass ParticleSystem. Klassen skall ha en array med Particle-objekt. Arrayen skall initieras m.h.a. en konstruktorparameter. Klassen skall på samma sätt som Particle ha en konstruktor som skapar en ParticleSystem-objekt givet ett annat ParticleSystem-object (en kopia). Efter anropet på denna skall det finnas två helt separata ParticleSystem-objekt med samma data. Klasserna skall vara så icke-muterbara som möjligt och dölja så mycket som möjligt av sin data (information hiding). Visa, m.h.a. av din kod, hur du skapar några Particle-objekt och hur du skapar ett ParticleSystem-objekt samt en kopia av detta. 4

8. Nedan har ni klassen Split. 8p class Split { Split left, right; public Split(Split left, Split right) { this.left = left; this.right = right; public int sum() { int res = 1; if (left!= null) { res = res + left.sum(); if (right!= null) { res = res + right.sum(); return res; a) Vad skrivs ut vid första utskriften i koden nedan? 3p b) Vad skrivs ut vid andra utskriften i koden nedan? 7p Split t = new Split(new Split(null,new Split(null,null)),null); System.out.println(t.sum()); // Första utskriften Split s = new Split(null,null); for(int i=0; i < 6; i++) { s = new Split(s,s); System.out.println(s.sum()); // Andra utskriften 5

9. Skriv en metod som givet ett godtyckligt positivt heltal skriver ut ett mönster 10p enligt exemplen nedan. Nedan ser man utskriften för indata 8 och indata 15. Tips: det lönar sig att skapa en matris inne i metoden. // Indata: 8 1... 1.444443. 1.5...3. 1.5.87.3. 1.5..7.3. 1.5666.3. 1...3. 12222222.... // Indata: 15 1... 1.4444444444443. 1.5...3. 1.5.888888887.3. 1.5.9...7.3. 1.5.9.XXXXX.7.3. 1.5.9.X...X.7.3. 1.5.9.X.X.X.7.3. 1.5.9.XXX.X.7.3. 1.5.9...X.7.3. 1.5.9XXXXXX.7.3. 1.5...7.3. 1.56666666666.3. 1...3. 122222222222222.... 6