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

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

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.

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

Tentamen i Programmeringsteknik I

Del A (obligatorisk för alla)

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

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.

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.

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.

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.

Sammanfattning och repetition utgående från typiska tentamensuppgifter

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

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

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)

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

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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.

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

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

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Tentamen OOP

Del A (obligatorisk för alla)

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

Tentamen i Programmeringsteknik I, ES,

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

OOP Objekt-orienterad programmering

TENTAMEN OOP

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

Malmö högskola 2008/2009 CTS

TENTAMEN OOP

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

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]

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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.

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

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

Laboration A Objektsamlingar

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

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

LyckaTill önskar Anna

TENTAMEN OOP

Objektorienterad programmering D2

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

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

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

DAT043 Objektorienterad Programmering

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

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

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

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

Objektorienterad programmering i Java

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

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

Föreläsning 5-6 Innehåll

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

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

Objektsamlingar i Java

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 Programmeringsteknik II Inledning. Anmälningskod:

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

Observera. Tentamen Programmeringsteknik II Skrivtid:

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

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 )

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

Tentamen Datastrukturer, DAT037 (DAT036)

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

Arrayer (fält)

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

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

Laboration 1 - Grunderna för OOP i Java

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

Java, klasser, objekt (Skansholm: Kapitel 2)

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

Programmeringsteknik I. Föreläsning 3: Klasser och arrayer

Repetition av OOP- och Javabegrepp

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Modeller, Objekt och Klasser

Transkript:

Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Fyll i försättssidan fullständigt. Såvida inget annat anges, både får och ska man bygga på lösningar till föregående uppgifter även om dessa inte har lösts. På B-delen är det tillåtet att införa hjälpmetoder och hjälpklasser. Uttrycket skriv en metod som skall alltså inte tolkas så att lösningen inte får struktureras med hjälp av flera metoder. Du behöver inte skriva import-satser för klasserna Scanner, ArrayList, Locale och inte heller för klasser i java.io. 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. Observera att betyget påverkas negativt av icke-privata eller onödiga instansvariabler, dålig läslighet, upprepning av identisk kod, underlåtenhet att utnyttja given eller egen tidigare skriven metod. Skrivningen består av två delar. Lösningarna till uppgifterna på A-delen ska skrivas in i de tomma rutorna och den delen ska lämnas in. Lösningarna till uppgifterna på B-delen skrivs på lösa papper. För att bli godkänd (betyg 3) krävs att hela A-delen är i stort sett rätt löst. För betyget 4 krävs dessutom att minst hälften av uppgifterna på B-delen och betyg 5 att alla uppgifterna på B-delen är i stort sett rätt lösta. Vi bedömning av betyg 4 och 5 tas också hänsyn till kvalitéen på lösningarna i A-delen. Observera att B-delen inte rättas om inte A-delen är godkänd. Lycka till!

Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna dvs klasser börjar med stor bokstav, metoder och variabler med liten. Ringa in rätt svar och lämna in tillsammans med dina övriga svar! a) En void-metod 1) får inte ha parametrar 2) får inte returnera ett värde 3) måste ha en utskriftsats b) Givet koden World w = new World(); Turtle t = new Turtle(w); I denna kod är 1) t en klassvariabel 2) t ett objekt 3) t en referens till ett objekt c) Koden World w = new World(); Turtle t = new Turtle(w); Turtle u = t; u.move(10); medför 1) att ett turtle-objekt flyttas 2) att två turtleobjekt flyttas 3) kompileringsfel 4) exekveringsfel d) Vilken returtyp bör metoden nedan ha dvs vad ska... bytas mot? public... calculate(int a) { return Math.sqrt(a*2) + 18; 1) String 2) int 3) double e) Hur många objekt skapas av koden nedan? (Du ska bara räkna de objekt som man ser att koden skapar) Turtle[] family = new Turtle[5]; World earth = new World(400, 400); for(int i=0; i<3; i++) { family[i] = new Turtle(earth); 1) 3 objekt 2) 4 objekt 3) 5 objekt 4) 6 objekt 5) 7 objekt

f) Double är 1) en inbyggd klass i Java 2) en metod för att hantera flyttal 3) en primitiv typ g) Vilket uttalande om nedanstående kod är korrekt? int[] tal = new int[5]; tal[0] = 14; 1) Den skapar en nollställd array och lägger in 14 först. 2) Den skapar en array där det första elementet blir 14 och resten null 3) Den skapar en array med ett element men kan växa till 5 element h) Koden Integer x = null; System.out.println(x.toString()); 1) ger kompileringsfel 2) ger NullPointerException 3) ger inga fel alls i) ArrayList är en praktisk datastruktur för att 1) den kan växa när man vill lägga till fler element 2) man kan använda indexoperatorn [ ] 3) den kan lagra primitiva datatyper utan omslagsklasser j) En instansvariabel 1) måste deklareras utanför konstruktorerna 2) måste deklareras i en konstruktor 3) måste ges ett värde i en konstruktor k) Uttrycket (int)(1 + 3/2.) + 3 1) har värdet 5.0 2) har värdet 5 3) har värdet 5.5 l) En konstruktor 1) skapar en ny klass 2) anropas alltid när ett objekt skapas 3) har returtypen void

Nu följer ett antal uppgifter som handlar om klassen Product. Ett objekt ur denna klass representerar en enskild vara i en varuautomat. En vara representeras med ett namn, pris och antal exemplar som finns tillgängliga av den varan. Se bilagan! A2. Skriv klart konstruktorn som tar emot namn och pris. Antalet amount sätts till 0. public Product(String name, int price) { A3. Skriv metoden tostring. Ser körexemplet för det exakta utseendet! A4. Skriv klart metoden setprice som ger varan ett nytt pris. Metoden ska returnera det gamla priset. public int setprice(int newprice) { A5. Skriv klart metoden addamount som ökar på antalet i lager. Metoden ska returnera det nya antalet. public int addamount(int amount) {

A6. Skriv klart sell. Om det finns exemplar av denna vara (amount > 0) ska antalet minskas med 1 och true returneras. I annat fall skall ingenting ändras och false returneras. public boolean sell() { Här följer ett antal uppgifter som handlar om klassen VendingMachine. Ett objekt ur denna klass representerar en varuatomat. Varorna representeras med en arraylist med Productobjekt. Förutom denna arraylist finns det två instansvariabler: size som anger det maximala antalet Product-objekt som kan lagras (dvs den största tillåtna storleken på arraylisten) och cash som anger aktuell kassa. Kassan är noll från början och ökar vid varje försäljning. A7. Skriv klart konstruktorn som tar emot den maximalt tillåtna storleken, skapar arraylistan och sätter kassan till 0. public VendingMachine(int size) { A8. Metoden listproducts ska producera en lista över varor som automaten normalt säljer. Varorna ska listas med namn och pris. Se körutskrift! public void listproducts() {

A9. Metoden find(string name) letar efter en vara med angivet namn. Om varan hittas returneras en referens till den, i annat fall returneras null. Skriv klart metoden! public Product find(string name) { Nedanstående uppgift hör inte ihop med klasserna Product och VendingMachine. A10. Metoden random(int p) ska med sannolikheten p procent returnerar true annars false. Exempel: random(100) skall alltid returnera true, random(0) skall alltid returnera false och random(90) ska med 90 procents chans returnera true osv. Skriv klart metoden! public static boolean random(int p) {

Del B (för betyg 4 och 5) Svaren skrivs på lösa papper med ny uppgift på nytt papper. B1. Metoden addorupdate i klassen VendingMachine letar efter en vara med angivet namn. Om varan hittas ändras priset och dess antal ökas på med angivet antal. Om varan inte hittas och det finns plats för en till läggs den till med angivet antal och pris. Om den ska läggas till men det inte finns plats görs ingenting. I så fall ska metoden returnera false, i övriga fall true. B2. Metoden sell(string name) ska hantera försäljning av en vara med angivet namn. Om varan inte finns alls eller om lagret av den är tomt (amount är 0) ska detta meddelas med en utskrift. Annars ska metoden skriva ut priset och anropa cashreceived med varans pris som parameter. Om cashreceived returnerar true ska ett leveransmeddelande skrivas ut. I annat fall ska ett meddelande om nekad leverans skrivas. Se utskrifterna! Obs: Du ska inte skriva metoden cashreceived bara anropa den. B3. Metoden load ska fylla på automaten med information från en fil. Filens format framgår av save-metoden. Om en vara inte kan läggas till (fler varukategorier än som det finns plats för) läggs den i stället in i en arraylist som returneras. B4. Skriv en servicemetod int readanint(string prompt, int min, int max) som skriver ut promptern prompt, kontrollerar att det går att läsa ett heltal från standard input (System.in) samt kontrollerar att talet är större än eller lika med min och mindre är eller lika med max. Om detta är uppfyllt returneras talet. Om det inte är uppfyllt ska metoden ge en felutskrift och be användaren att försöka igen. Så här kan konversationen se ut efter anropet readanint("gimme: ", 1, 5): Gimme: 12 Gimme: -2 Gimme: Vad vill du ha egentligen? Gimme: 9 Gimme: 1