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

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

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

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.

Tentamen i Programmeringsteknik I

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 vakten 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 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.

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.

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

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.

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 ä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.

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

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

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.

Del A (obligatorisk för alla)

Lägg uppgifterna i ordning. Skriv uppgiftsnummer 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.

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Tentamen i Programmeringsteknik I

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.

Del A (obligatorisk för alla)

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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

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

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

Lägg uppgifterna i ordning. Skriv uppgiftsnummer 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

TENTAMEN OOP

Tentamen i Programmeringsteknik I, ES,

Tentamen. Lösningsförslag

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Tentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

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]

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Del A (obligatorisk för alla)

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

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 PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN OOP

Malmö högskola 2008/2009 CTS

OOP Objekt-orienterad programmering

Tentamen OOP

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

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

DAT043 Objektorienterad Programmering

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Presentation av trafiksimuleringsprojektet

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

LyckaTill önskar Anna

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 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Föreläsning 5-6 Innehåll

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Tentamen i Grundläggande programmering STS, åk

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

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

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

TENTAMEN OOP

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

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

Tentamen i Programmering

2D1342 Programkonstruktion för F1, ht 2006

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen i Algoritmer & Datastrukturer i Java

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

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad programmering D2

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

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

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

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

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 )

Laboration A Objektsamlingar

Transkript:

Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer och pin-kod (eller namn om du saknar sådan) på alla papper. Skriv inte längst upp i vänstra hörnet - det går inte att läsa där efter sammanhäftning. Fyll i försättssidan fullständigt. Det är principer och idéer som är viktiga. Skriv så att du övertygar examinator om att du har förstått dessa även om detaljer kan vara felaktiga. Alla uppgifter gäller programmeringsspråket Java och programkod skall skrivas i Java. Koden skall vara läslig dvs den skall vara vettigt strukturerad och indenterad. Namn på variabler, metoder, klasser etc skall vara beskrivande men kan ändå hållas ganska korta. Lycka till! Observera att poängavdrag bland annat kan göras för icke-privata eller onödiga instansvariabler, dålig läslighet, upprepning av identisk kod och underlåtenhet att utnyttja given eller egen tidigare skriven metod. 1

1 Del A (obligatorisk för alla) För att bli godkänd krävs att alla uppgifter på denna del är väsentligen korrekta. A1. Ange för var och en av punkterna a) - h) vilket av de tre alternativen till höger som är korrekt. a) int är 1 en inbyggd klass i Java x det minsta värdet som går att representera 2 en primitiv typ b) Metoden tostring kan anropas 1 bara för omslagsklasser x för alla klasser 2 bara för de klasser där den är implementerad c) Koden Integer x = null; System.out.println(x.toString()); d) ArrayList är en praktisk datastruktur för att e) Antag följande metodhuvud: double foo(int arg) Vilken av vidstående satser är korrekt (ger ej kompileringsfel)? 1 ger kompileringsfel x ger NullPointerException 2 ger inga fel alls 1 den kan växa när man vill lägga till fler element x man kan använda indexoperatorn [ ] 2 den kan lagra primitiva datatyper utan omslagsklasser 1 double x = foo(5); x double y = foo(7.3); 2 int z = foo(4); f) Koden int[] a = new int[5]; a[5] = 7; System.out.println(a[5]); 1 ger utskriften 7 x medför ArrayIndexOutOfBoundsException 2 ger utskriften null g) ArrayList<String> a = new ArrayList<String>(); a.add("hej"); a.add("tjena"); a.remove(0); System.out.println(a.get(0)); 1 ger utskriften Hej x ger utskriften null 2 ger utskriften Tjena h) En konstruktor 1 skapar en ny klass x anropas alltid när ett objekt skapas 2 har returtypen void 2

Resten av skrivningen handlar om tre klasser som kan användas för att betygsätta tentamensskrivningar och producera statistik. Tentamensskrivningarna består av en A-del och en B-del där poängen för delarna hanteras var för sig. Klasserna finns i bilagan men delar av koden är utelämnade. Klassen Exam innehåller information om poängen på uppgifterna på en tentamensskrivning. Klassen ExamCollection innehåller en samling av Exam-objekt. Klassen ExamReader är en hjälpklass som läser information om skrivningarna från en fil och lämnar ifrån sig Exam-objekt. Klasserna Exam och ExamCollection innehåller också var sin main-metod inklusive utskrifter som exemplifierar. A2. Skriv färdigt konstruktorn Exam(String student). this.student = student; scoresparta = new ArrayList<Integer>(); scorespartb = new ArrayList<Integer>(); A3. Skriv färdigt metoderna addparta(int score) och addpartb(int score) som lägger in poängen för en deluppgift i del A respektive del B. public void addparta(int score) { scoresparta.add(score); A4. Skriv färdigt metoden String tostringparta() som returnerar en strängrepresentation av del A. Se körexempel! Du behöver inte skriva metoden String tostringpartb(). public String tostringparta() { return scoresparta.tostring(); A5. Skriv metoden int sumpartb() som beräknar och returnerar summan av poängen på del B. public int sumpartb() { int sum = 0; for (int score : scorespartb) { sum += score; return sum; A6. Skriv metoden public boolean passed(int minscore, int limit3) som returnerar true om skrivningen är godkänd, annars false. För att en skrivning skall vara godkänd krävs dels att alla uppgifter på del A har minst minscore poäng och dels att summan av poängen på del A är minst limit3. Se exempelkörningen! 3

public boolean passed(int minscore, int limit3) { int sum = 0; for (int score : scoresparta) { sum += score; if (score < minscore) { return false; return sum >= limit3; 4

Del B (Endast för dem som vill ha betyget 4 eller 5) Observera: Denna del rättas endast om del A är godkänd! Betyg 4 kräver att minst hälften och betyg 5 att alla uppgifter på denna del är väsentligen korrekt lösta. B1. Skriv färdigt metoden int getgrade(int minscore, int limit3, int limit4, int limit5) i klassen Exam som returnerar skrivningens betyg. Om skrivningen inte uppfyller kraven för godkänt enligt uppgift A6 ovan ska betyget 0 (för U) returneras oavsett resultatet på del B. Om den är godkänd sätts betyget beroende på poängsumman på del B enligt följande summan minst limit5 ger betyget 5, summan minst limit4 men mindre är limit5 ger betyget 4 och summan mindre än limit4 ger betyget 3. public int getgrade(int minscore, int limit3, int limit4, int limit5) { if (!this.passed(minscore, limit3)) { return 0; int thegrade = 3; int sum = this.sumpartb(); if (sum >= limit5) return 5; else if (sum >= limit4) return 4; else return 3; B2. Skriv färdigt konstruktorn i klassen ExamCollection. Konstruktorn tar emot ett filnamn som parameter och använder den bifogade klassen ExamReader för att hämta Exam-objekt skapade utifrån innehållet i filen. public ExamCollection(String filename) throws IOException { thecollection = new ArrayList<Exam>(); ExamReader examreader = new ExamReader(filename); Exam exam = examreader.next(); while (exam!=null) { thecollection.add(exam); exam = examreader.next(); B3. Skriv färdigt metoden printstatistics. Metoden ska beräkna och skriva ut betygsfördelningen dvs antalet U, antalet 3-or, antalet 4-or och antalet 5-or. Se körexempel! 5

public void printstatistics(int limit3, int limit4, int limit5) { int[] distribution = new int[6]; for (Exam exam : thecollection) { int grade = exam.getgrade(limit3, limit4, limit5); distribution[grade]++; /////////////// Nedanstående del given /////////////// System.out.println("\nStatistik"); System.out.format("U:%2d, 3:%2d, 4:%2d, 5:%2d\n", distribution[0], distribution[3], distribution[4], distribution[5]); B4. Metoden getgrade tar i vårt exempel fyra parametrar. Egentligen skulle man vilja representera gränserna tillsammans i ett objekt, eftersom de hör ihop. Vi kallar klassen för sådana objekt Limit, så att signaturerna för de två metoderna getgrade och passed i Exam blir int getgrade(limit limit) och boolean passed(limit limit) och på motsvarade sätt för metoderna i ExamCollection. Skriv ett kodskelett till klassen Limit. Det ska i den framgå vilka instansvariabler, konstruktorer och metoder som finns. Minimipoängen (minscore) och de tre betygsgränserna ska kunna lagras och användas. Tänk på synligheten för de olika delarna i koden du skriver. Skriv inget innehåll i konstruktorer och metoder, bara deras huvuden! public class Limit { private int minscore, limit3, limit4, limit5; public Limit(int minscore, int limit3, int limit4, int limit5) public String tostring() public int getminscore() public int getlimit3() public int getlimit4() public int getlimit5() 6