Tentamen i Programmeringsteknik I,, KandMa/Fy,

Relevanta dokument
Tentamen i Programmeringsteknik I, ES,

Tentamen i Programmeringsteknik I

LyckaTill önskar Anna

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.

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.

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

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

Föreläsning 3-4 Innehåll

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

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

Del A (obligatorisk för alla)

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.

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 OOP

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. Grundläggande programmering i Java A 5p, DTAA

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.

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.

Tentamen OOP

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

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.

Tentamen, EDAA20/EDA501 Programmering

Tentamen i Programmeringsteknik MN

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

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

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

Malmö högskola 2008/2009 CTS

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

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

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 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Tentamen, EDA501 Programmering M L TM W K V

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.

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

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.

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

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

Del A (obligatorisk för alla)

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

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

Laboration 13, Arrayer och objekt

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Föreläsning 5-6 Innehåll

Tentamen i Programmeringsteknik MN

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

TENTAMEN OOP

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

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering

Redovisning av inlämningsuppgifter

OOP Tentamen

OOP Tentamen

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

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

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

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

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

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, EDAA10 Programmering i Java

Objektorienterad Programmering (TDDC77)

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

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

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Föreläsning 1 & 2 INTRODUKTION

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Tentamen i Programmering

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

Att öva på och förstå ett program med flera samverkande klasser.

OOP Tenta

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

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

OOP Omtenta

Lösningsförslag tentamen FYTA11 Java

Tentamen i Grundläggande Programvaruutveckling, TDA548

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

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

Föreläsning 2, vecka 8: Repetition

Föreläsning REPETITION & EXTENTA

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

Lösningsförslag övning 2.

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Tentamen. Lösningsförslag

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

Transkript:

Tentamen i Programmeringsteknik I,, KandMa/Fy, 2010-10-19 Skriv tid: 14-17. Hjälpmedel: 1. Kurslitteratur, en av följande: Lewis & Loftus, Java Software Solutions Skansholm, Java Direkt Guzdial & Ericson, Intrododuction to computing & programming. Litteraturen får inte innehålla överdrivet mycket anteckningar. 2. Penna, radergummi, linjal. Tentamen består av fyra uppgifter och maxpoängen är 24. För att bli godkänd på tentamen (betyg 3) krävs minst 15 poäng För att få betyg 4 på tentamen krävs minst 18 poäng. För att få betyg 5 på tentamen krävs minst 21 poäng. Instruktioner: Programmen skall vara skrivna i Java om inte annat anges. Programmen skall vara skrivna med vettig layout och förståeliga. Tydliggör gärna matchande måsvingar. Skriv varje uppgift på nytt papper. Skriv inte på baksidan. Använd inte rödpenna. Läs uppgifterna noga så du vet vad som skall göras. Gör inte mer än det som efterfrågas. Även ofullständiga lösningar och/eller lösningsskisser kan ge poäng om de visar att du tänkt rätt Läs igenom uppgiften igen när du löst den så att ser att du verkligen gjort rätt saker. import-satser behöver inte skrivas. Lycka till! Torsten 1

Uppgift 1 (6p) En klass Badkar skall ha följande egenskaper: Storleken på badkaret uttryckt i antal liter Antal liter vatten som just nu finns i badkaret Modellbeteckning för badkaret Skriv klassen Badkar som skall innehålla: Instansvariabler för de tre egenskaperna Två konstruktorer. En utan parameter och en med parametrar med vilka man kan skapa ett badkar med en preciserad storlek och modellbeteckning. En metod fyll som fyller på badkaret med ett givet antal liter vatten. Det givna antalet skall ges som parameter till metoden. Obs! Metoden måste kontrollera att inte badkaret svämmar över och i det fallet bara fylla det så att det blir precis fullt. En metod töm som tömmer allt vatten från badkaret. En metod getfyllnadsgrad som returnerar hur mycket uttryckt i procent som badkaret är fyllt med vatten. Ex. ett 200-liters badkar som är fyllt med 150 liter har en fyllnadsgrad av 75%. En tostring-metod för att erhålla information om badkaret. Skriv också en mainmetod i en klass TestBadkar som Skapar ett 200-liters badkar med modellbeteckningen BADTUNNAN. Skriver ut information om badkaret Fyller badkaret med 150 liter Beräknar fyllnadsgraden (m.h.a. metoden getfyllnadsgrad) och skriver ut det värdet. Tömmer badkaret. Fyller badkaret med 50 liter Skriver ut information om badkaret En körning av mainmetoden kan se ut så här: Badkaret BADTUNNAN. Kapacitet=200. Fylld med 0 liter Nu fyllt till 90.0 procent Badkaret BADTUNNAN. Kapacitet=200. Fylld med 50 liter 2

Uppgift 2 (6p) a) Antag att klassen Boll existerar och ett skal av klassen visas här: public class Boll { private double x,y,z,r; public Boll() { public Boll(double inx, double iny, double inz, double inr) {... public void flytta(double dx, double dy, double dz) {... public boolean jämför( Boll b ) {... // Slut klassen Boll Ange vilken/vilka av satserna (1)-(8) i mainmetoden som är felaktiga i mainmetoden:. public klass TestBoll { public static void main(string [] arg) { Boll.flytta(1.0,2.0,3.0,4.0); // (1) Boll b = new Boll(1.0,1.0,1.0,4.0); // (2) System.out.println(b.flytta(1.0,1.0,1.0)); // (3) double r=4.0,s=5.6, t=78.5; b.flytta(r,s,t); // (4) b.flytta(r+0.5,8.5,t*2); // (5) b.flytta(x,y,z); // (6) Boll b2; boolean ok1 = b2.jämför(b); // (7) boolean ok2; ok2 = b.jämför(new Boll(1.0,2.0,3.0,4.0)); // (8) // Slut klassen TestBoll b) En programkörning ser ut så här (fet stil är inmatning): Hur många heltal vill du läsa in? 3 Ge talen: 4 12 8 Talen i omvänd ordning är: 8 12 4 Skriv de satser som utför detta, dvs frågar efter ett antal tal, läser in dem och skriver dem i omvänd ordning. Ingen komplett klass eller komplett mainmetod behöver skrivas. Antag att följande sats är given: Scanner scan = new Scanner(System.in); 3

c) Antag att följande matematiska uttryck för vektoraddition skall beräknas: V 4 = V 1 +V 2 +V 3 Du skall nu uttrycka denna addition i java m.h.a. en klass Vektor. public class Vektor { private double x, y; public Vektor() { this.x=0; this.y=0; public Vektor(double initx, double inity) { this.x=initx; this.y=inity; public Vektor add(vektor invektor) { Vektor outvektor = new Vektor(); double tempx, tempy; tempx = this.x + invektor.x; tempy = this.y + invektor.y; outvektor.x = tempx; outvektor.y = tempy; return outvektor; // klassen Vektor Skriv de satser i nedanstående mainmetod som utför additionen. public static void main (String[] arg) { Vektor v1 = new Vektor(1.0,2.0); Vektor v2 = new Vektor(3.0,1.0); Vektor v3 = new Vektor(-1.0,4.0); Vektor v4; // Skriv den eller de satser som utför addition av // vektorerna v1,v2 och v3 och lägger resultatet i v4. // Det är tillåtet att deklarera och använda extra variabler // för att lösa uppgiften 4

Uppgift 3 (6p) Resultat i fotbollsmatcher poängsätts på följande sätt: Vunnen match ger 3 poäng, oavgjord 1 poäng, förlorad ger noll poäng. Om ett lag har följande matchresultat: 3-2 (dvs en vinst, gjorda mål 3, insläppta mål 2), 1-1 och 0-3 får man sammanlagt 4 poäng. Givet är följande mainmetod: public static void main (String[] arg) { MatchResultat m = new MatchResultat(); m.nyttresultat(3,2); // Lägg in resultatet 3-2 (3 gjorda,2 insläppta) m.nyttresultat(3,3); // Lägg in resultatet 3-3 m.nyttresultat(0,4); // Lägg in resultatet 0-4 m.nyttresultat(0,0); // Lägg in resultatet 0-0 System.out.println(m.poäng());// Skriv ut sammanlagda poängen. Skriv klassen MatchResultat så att den passar mainmetoden. Klassen skall lagra alla resultat i två arrayer, en för gjorda mål och en för insläppta mål, från första matchen till sista matchen. Antag att arrayernas längd kan sättas till 100 eftersom man aldrig någonsin lagrar fler än 100 matchresultat. Notera att klassen består av en konstruktor och metoderna nyttresultat och poäng. Uppgift 4 (6p) Givet är klasserna Bostad och Bostadsregister: import java.util.scanner; public class Bostad { private int rum; // antal rum private double boyta; // bostadens yta private String adress; // bostadens adress public Bostad() { public Bostad ( String a, int r, double b) { this.rum=r; this.boyta=b; this.adress=a; public int getrum() { return this.rum; public double getboyta() { return this.boyta; public void läs() { Scanner scan = new Scanner(System.in); System.out.println("Adress:"); this.adress = scan.next(); System.out.println("Bostadsyta:"); this.boyta = scan.nextdouble(); System.out.println("Antal rum:"); this.rum = scan.nextint(); 5

public String tostring() { return "Adress " + this.adress + ". Antal rum=" +this.rum + ". Bostadsyta=" + this.boyta; // Slut klassen Bostad public class BostadsRegister { private Bostad [] arrbostad = new Bostad[10]; private int antal; public BostadsRegister () { public void nybostad(bostad b) { arrbostad[antal]=b; antal++; public int getantalbostäder() { return this.antal; public Bostad getbostad(int index) { return arrbostad[index]; // Slut klassen BostadsRegister a) Skriv de satser i mainmetoden i klassen TestBostadsRegister som utför följande: Skapar ett tomt bostadsregister. Frågar användaren efter hur många bostäder som denne vill lägga in Frågar användaren efter data för dessa bostäder, en efter en, och lägger in dem i registret Skriver ut information om alla bostäder i registret Skriver ut information om alla 2-rumsbostäder i registret public class TestBostadsRegister { public static void main (String[] arg) { Scanner scan = new Scanner(System.in); // Slut klassen TestBostadsRegister Notera: Klasserna Bostad och BostadsRegister skall inte ändras i uppgift a). b) Modifiera metoden nybostad i klassen BostadsRegister så att den klarar att hantera ett godtyckligt antal bostäder. c) Skriv en metod tabortbostad i klassen BostadsRegister som tar bort en given bostad. Metoden skall ha ett heltal som parameter som anger index på den bostad som skall tas bort. 6