Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V



Relevanta dokument
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.

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.

PROGRAMMERINGSTEKNIK TIN212

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

OOP Objekt-orienterad programmering

Tentamen OOP

Lektion 1 - Programmeringsteknik F1, ht 2003

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

Objektorienterad programmering i Java

Föreläsning 1 & 2 INTRODUKTION

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

Tentamen i Objektorienterad programmering

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

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

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008

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

OMTENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13: 15

Tentamen i Programmeringsteknik I

SMD 134 Objektorienterad programmering

OOP Tenta

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

TENTAMEN OOP

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Examination i PROGRAMMERINGSTEKNIK F1/TM1 TIN212. Dag: Måndag Datum: Tid: (OBS 5 tim) Rum: V+M

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

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

Programmeringsteknik med C och Matlab

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

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

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Dugga i Grundläggande programmering STS, åk

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

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

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Dugga Datastrukturer (DAT036)

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

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.

Programmering för språkteknologer II, HT2011. Rum

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.

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

Redovisning av inlämningsuppgifter

OOP Omtenta

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

DELPROV 1 I DATAVETENSKAP

Examination in. PROGRAMMERINGSTEKNIK F1 TIN212 (Dugga) DAY: Monday DATE: TIME: (OBS 3 tim) ROOM: M

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

Del A (obligatorisk för alla)

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Tentamen, EDAA10 Programmering i Java

Lösningsförslag övning 2.

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

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 tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen, EDA501 Programmering M L TM W K V

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

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Examination in. Objektorienterad programvaruutveckling IT1 TDA545 DAY: THURSDAY DATE: TIME: ROOM: M

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.

Tentamen i Programmeringsteknik I

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

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.

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]

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

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

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

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

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, EDAA20/EDA501 Programmering

Tentamen. Lösningsförslag

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

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

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

tentaplugg.nu av studenter för studenter

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.

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

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

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

Programmering för språkteknologer II, HT2014. Rum

Föreläsning 3-4 Innehåll

Tentamen i Programmering

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

TENTAMEN OOP

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Föreläsning 9: Arv och UML

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

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

Transkript:

Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Erland Holmström Göteborg 16 dec 2014 Examination i PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V Ansvarig lärare: Erland Holmström tel. 1007, mobil 0708-710 600 Resultat: Skickas ut av Ladok. Lösningar: Läggs eventuellt ut på hemsidan. Granskning: Efter rättning finns tentorna på vår expedition. Tid för granskning av tentan finns på hemsidan när resultaten är publiserade. Betygsgränser: CTH: G=15p, max 30p Hjälpmedel: Bravaco, Simonson: Java Programming From the Ground Up Observera: Börja med att läsa igenom hela duggan så du kan ställa frågor när jag kommer. Jag kommer vanligen efter ca 1 timme (men det är typ 6 salar så det kan bli senare). Alla svar skall motiveras när så är lämpligt. Skriv tydligt, rita figurer. Lösningar som är svåra att läsa rättas inte. Answer concisely and to the point. De råd och anvisningar som getts under kursen måste följas svaren. Program skall skrivas i Java och skall vara indenterade. Använd kommentarer när det är lämpligt osv. Börja nya uppgifter på ny sida.. Lycka till!

Problem 1. Sant eller falskt? Motivera. Eller svara (kort) på frågorna. 2 a) Förklara varför det räcker att testa om p är delbart med alla tal d för varje d p när man undersöker om p är ett primtal. b) Ge två anledningar till att man bör deklarera instansvariabler private? c) Vad skrivs ut av följande program och varför blir resultatet så? (Notera att det uppenbara svaret är fel) public class Sum100Times { public static void main(string[] args) { final double SMALL_NUMBER = 0.01; double sum = 0.0; for (int i=1; i<=1000; i++) { sum = sum + SMALL_NUMBER; System.out.println("sum = " + sum ); // end main // end Sum100Times d) En klass byggs i princip upp av tre saker som man måste ha med när man skriver klassen, dess namn (identitet) är en av dom, vilka är dom andra? (8p) Problem 2. Testar: val, loopar, delbarhet Ett tal, n, sägs vara vänskapligt om den vänstra siffran i det är delbar med 1, om de två vänstra siffrorna är delbara med 2 osv. Till exempel så är 42325 vänskapligt eftersom 4 är delbart med 1, 42 är delbart med 2, 423 är delbart med 3, 4232 är delbart med 4 och 42325 är delbart med 5. Skriv en metod, boolean friendly(int n), som avgör om ett givet heltal är vänskapligt. Det underlättar om man vet hur många siffror n innehåller, skriv en metod för det också, int nbrofdigits(int n). (7p) Problem 3. Testar: enkla klasser I slutet finns en API sida för en tärning. Skriv klassen. 9p) Problem 4. Testar: användande av klasser och fält Skriv ett program som skapar ett fält med tärningar med olika storlek (tex 6, 5 och 7 men koden skall i princip fungera även för många tärningar tex 100) och sedan kastar tärningarna och presenterar resultatet. (6p)

3

/Users/erland/CTH/Kursermm/TIN2 examstin212/141217.d.l/losn.txt Page 1 of 3 Saved: 2015-01-09 15:29:32 Printed For: Erland Holmström Lösningar Dugga TIN212 2014-12-17 Uppg 1a När vi gör x*y med x<sqrt(p) så måste y>sqrt(p) om x*y=p. Dvs i ett par x,y så p "litet" x med ett "stort" y och när vi nått upp till sqrt(p) för x så har vi hit Uppg 1b Inkapsling och Informationsdöljande se sid 418- i boken. Detta ger fördelen att man tex kan döpa om variabler eller ändra hur man lagrar värde utan att klienten påverkas. Man kan också styra vad klienten tillåts "se" och manipulera genom att bara bear värden via getters/setters. (De flesta ger den andra anledningen, ofta i flera varianter. Väldigt få ger den Uppg 1c sum = 9.999999999999831 efter 1000 termer (exakta siffror på slutet är inte väsentligt utan just att det blir < 10) Alla tal kan inte representeras exakt i datorn, precis som 1/3 inte är exakt lik 0.33333 så kan inte 0.01 representeras exakt utan lagras som ett lite mindre tal (precis som 0.33333 är lite mindre än 1/3). Summan blir därför lite för liten. Uppg 1d Tillstånd och beteende. Metoder och instansvariabler accepterades också. Uppg 2 se separat fil

/Users/erland/CTH/Kursermm/TIN2 examstin212/141217.d.l/losn.txt Page 2 of 3 Saved: 2015-01-09 15:29:32 Printed For: Erland Holmström page breake Uppg 3 public class Dice { private static int nbrofdice = 0; // Nbr of dice created private int dice; // Number showing on the first die. private int size = 6; // default size private int whoami = 0; // this dice id i.e. it's creation nbr public Dice(int size) { if ( size>=2 && size<=20 ) { this.size = size; nbrofdice = nbrofdice + 1; whoami = nbrofdice; roll(); // initial value, don't care about the return else { throw new IllegalArgumentException("Dice: " + "Otillåten storlek, måste vara 2..20)"); public int roll() { dice = (int)(math.random()*size) + 1; return dice; public int getvalue() { return dice; public int getsize() { return size; public int getwhoami() { return whoami; public String tostring() { return "I am Dice nbr " + whoami + " and my value is =" + dice; // end class Dice Uppg 4 public class MainDiceArray { public static void main(string[] args) { Dice[] df = new Dice[3]; //1 int[] size = {6,5,7; //2 for (int i=0; i<df.length; i++) { df[i] = new Dice(size[i]);

/Users/erland/CTH/Kursermm/TIN2 examstin212/141217.d.l/losn.txt Page 3 of 3 Saved: 2015-01-09 15:29:32 Printed For: Erland Holmström for (int i=0; i<df.length; i++) { System.out.print(df[i]); System.out.println(" size= " + df[i].getsize()); // end main() // end class MainDiceArray