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.

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.

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.

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.

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.

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

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I

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.

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!

Tentamen i Grundläggande programmering STS, åk

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

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

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

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

LyckaTill önskar Anna

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.

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.

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

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

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

Del A (obligatorisk för alla)

Föreläsning 5-6 Innehåll

Del A (obligatorisk för alla)

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

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

TENTAMEN OOP

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

OOP Tentamen

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

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.

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]

Föreläsning 3-4 Innehåll

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

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, ES,

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

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

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

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

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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

Tentamen i Programmeringsteknik I,, KandMa/Fy,

PROGRAMMERINGSTEKNIK TIN212

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Övningar Dag 2 En första klass

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 )

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

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

JAVA Mer om klasser och objektorientering

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

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

DAT043 Objektorienterad Programmering

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

Tentamen i Programmering

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.

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

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

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Laboration 13, Arrayer och objekt

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

2D1339 Programkonstruktion för F1, ht 2003

Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer

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

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

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

PROGRAMMERING-Java TENTAMINA

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Tentamen i Grundläggande Programvaruutveckling, TDA548

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

Föreläsning 2, vecka 8: Repetition

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Parameteröverföring. Exempel. Exempel. Metodkropp

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

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

TENTAMEN OOP

Lösningsförslag, tentamen FYTA11 Javaprogrammering

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

Tentamen i Programmeringsteknik MN

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

Transkript:

Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt 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 examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga. Programkod 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. Betygsgränser: 18 ger säkert 3, 27 ger säkert 4, 36 ger säkert 5. Lycka till! 1

2

Uppgifter 1. Skriv lösningen på denna uppgift (1 a och b) direkt på detta ark, riv ut det och häfta ihop det med övriga papper du lämnar in! a) Nedan ser du 6 par med kodsatser (i - vi). Under koden finns en figur med sex linjer som skall fyllas i med kod. På varje linje skall det stå en sats. Från varje par ska du välja en sats (A eller B). Placera satserna du väljer i rätt ordning så att du får javakoden till en metod som går att kompilera utan fel. Metoden ska räkna ut arean för en triangel där bas och höjd är givna parametrar. Metoden skall kontrollera att båda parametrarna är icke-negativa. i. A. if (bas < 0 höjd < 0) B. if (bas < 0 && höjd < 0) ii. A. double area = -1; B. int area = -1; iii. A. public double triangel(double bas, double höjd) B. public int triangel (double bas, double höjd) iv. A. return area; B. System.out.println("Arean av trianglen är " + area); v. A. return; B. System.out.println("Ogiltiga mått på triangeln"); vi. A. area = bas*höjd/2; B. (bas*höjd)/2 = area; { { else { (3p) 3

b) I koden är en del konstruktioner inringade och markerade med ett tal. Under koden finns en tabell med en beskrivning eller en term per rad. Du ska för varje rad i tabellen bestämma vilken av de markerade konstruktionerna i koden som bäst svarar mot beskrivningen i tabellen. Svara med endast ett tal per rad. Observera att alla talen inte kommer med i tabellen. Ett svar är redan ifyllt som ett exempel. 12 /** 1 *@author Anna 2 */ public class rectangle { 3 private double height; private final double WIDTH = 3.0; public void setheight(double h) { height = h ; 6 public double area() { 4 7 5 a = height*width; return a; 8 public double circumference() { return 2*height + 2*WIDTH; 9 public double diagonal() { 10 double dia; dia = Math.sqrt(height*height + WIDTH*WIDTH); return dia; 11 Programmerarens namn 12 Klassmetod Avvikelse från namnkonventionerna Objektmetod Deklaration av lokal variabel Parameter Konstant Returtyp Ger kompileringsfel (4p) 4

2. Vi vill skapa ett enkelt gissningsspel där datorn tänker på ett tal, du gissar sedan och datorn talar om ifall du gissar rätt eller om ditt tal är för stort eller för litet. Du fortsätter att gissa tills du gissat rätt. Varje gång du skapar ett nytt objekt av typen Game tänker datorn på ett nytt tal. Du gissar genom att skriva in tal på tangentbordet. Det kan implementeras så här: import java.util.*; public class Game { private int talet; // för Scanner // det tal datorn tänker på /** * Konstruerar ett objekt med ett pseudoslumptal i intervallet [1,9] */ public Game() { talet = (int) (Math.random() * 9 + 1); /** * Metod som används för att jämföra din gissning med datorns val. * @parameter myguess Tal som skall jämföras med datorns valda tal * @return -1, 0 eller 1 beroende på om parametern är mindre än, lika med eller större än * datorn val */ public int compare(int myguess) { public static void main(string [] args) { // Gör följande: // Skapa ett objekt av typen Game med den parameterlösa konstruktorn, // det betyder att datorn väljer ett tal i intervallet 1-9. // // Upprepa tills du gissat rätt: // Fråga efter en gissning genom inmating från tangentbordet, // dvs med hjälp av ett Scannerobjekt. // Anropa metoden compare ovan för att testa gissningen och skriv ut // enligt körexemplet. // Öka antalet gissningar med ett. // Skriv ut antalet gissningar som behövdes för att hitta rätt tal. Exempelvis kan det se ut så här när du kör programmet: java Game Gissa ett tal i intervallet [1,9] Din gissning: 3 För liten Din gissning: 5 För liten Din gissning: 9 För stor Din gissning: 7 För liten Din gissning: 8 *Rätt*, 5 gissningar krävdes Dina uppgifter: a) Skriv metoden compare enligt beskrivningen ovan. (4p) b) Skriv metoden main som fungerar enligt beskrivningen ovan. (4p) 5

3. Antag att du har följande klass: public class Tentamen { private int maxpoäng; private int[] resultat; // maxpoäng på tentan // array med poängfrekvens // dvs i element 0 finns antal personer med noll poäng // i element 1 antal personer med 1 poäng osv upp // till maxpoäng. // Arrayen ska alltså innehålla maxpoäng+1 element. public Tentamen(int max) { // Konstruktor där man anger önskad maxpoäng som parameter // Instansvariablerna, dvs maxpoäng och resultat ska initieras public lagraresultat(int poäng) { // Parameter; poäng anger poängtal för en person // Öka lämplig plats i arrayen med 1 men kolla rimlighet av poängen först. // Om exempelvis poäng har värdet 5 så ska element nummer 5 i arrayen ökas med 1. public void statistik(int godkänd) { // Parameter: godkänd anger lägsta poäng för godkänd // tenta, dvs poängtal som åtmindstone ger betyget 3 // Metoden beräknar och skriver ut (på skärmen) antal personer som blev // underkända, dvs antalet personer med lägre poäng än parameterns värde public static void main(string [] args) { // Skapa ett objekt av klassen Tentamen med // maxpoäng 40 med hjälp av konstruktorn i klassen // // Läs in 100 tentamensresultat (hela poäng) från tangentbordet, dvs med ett Scannerobjekt. // Lagra dessa ett i taget genom att anropa metoden lagraresultat i ditt Tentamensobjekt // // Anropa metoden statistik i ditt Tentamensobjekt för få antalet underkända utskrivet Din uppgift är att skriva den konstruktor och de metoder (inkl main) som är beskrivna ovan. Kommentarerna beskriver vad varje del ska göra. Förklarande figur: 12 9 7 15 22 12 6 1 Exempel: En tentamen med maxpoäng 7. Vi ser att det finns 12 studenter med 0 poäng, 9 studenter med 1 poäng osv. Om vi anger gränsen för godkänt till 4 poäng ser vi att 12+9+7+15 = 43 studenter blir underkända. (10p) 6

4. I en bilaga finns javakod som implementerar klassen Bank. En bank består av en array (customers) av kunder, en räknare (numberofcustomers) som håller reda på aktuellt antal kunder och en räknare (globalcustomernumber) som räknas upp för varje ny kund och som ser till att nya kunder får nya nummer (borttagna kunders nummer återanvänds ej). Om en kund tas bort flyttas de som ligger på högre index i customers så att befintliga kunder alltid finns på index 0 till numberofcustomers-1 i arrayen. Vissa delar av koden är utelämnade. I bilagan finns också dokumentation av publika delar av klasserna Customer och Person som används av klassen Bank. Klassen Account är helt utelämnad eftersom den inte är av intresse för denna uppgift. Dessutom finns ett körexempel. a) Programmet avslutas med alternativet 0 i huvudmenyn varefter man får en kontrollfråga som skall besvaras med ja om man verkligen vill sluta. Som synes i slutet av körexemplet så fungerar inte detta programmet avbryts inte. Varför inte? Hur skall man göra? (2p) b) Skriv klar koden i metoden listcustomers så att den fungerar i enlighet med körexemplet. (5p) c) Skriv klar koden i metoden createcustomer som lägger till en ny kund. Om arrayen med kunder är för liten skall den utökas med en faktor 2 (dvs vid första utökningen skall storleken ökas till 6 eftersom den är 3 initialt). (8p) Du får inte ändra eller lägga till något i klasserna Customer eller Person. Du får inte heller ändra i några andra metoder i klassen Bank förutom att rätta felet enligt deluppgift a) 7