Högskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson

Relevanta dokument
Högskolan Dalarna sid 1 av 5 Data-sektionen Hans-Edy Mårtensson

TENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00

Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr,

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

TDDC76 - Programmering och Datastrukturer

Collections Collections "Envisa" objekt Klasserna Bofstream och Bifstream Definition av metoder i klasserna Bifstream och Bofstream Klassen Streng

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

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering.

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT / 42

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

Lösningsförslag tentamen FYTA11 Java

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.

5 Arv och dynamisk bindning FIGUR

public interface Skrivbar { void skriv(); } public class Punkt implements Skrivbar { public double x; public double y;

Tillämpad programmering

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

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

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

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tillämpad programmering

TDDC76 - Programmering och Datastrukturer

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29

Arv. Objektorienterad och komponentbaserad programmering

Introduktion till arv

tentaplugg.nu av studenter för studenter

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

2D1339 Programkonstruktion för F1, ht 2004

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

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 19.

Tentamen. Lösningsförslag

Dynamisk bindning och polymorfism

Programmering A. Johan Eliasson

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

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

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

Generiska konstruktioner. Kursbokens kapitel 13

DD1342 Programkonstruktion för F1, ht 2007

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

TDDC76 Programmering och datastrukturer

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

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Tentamen, EDAA20/EDA501 Programmering

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

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

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.

TDIU20 - Objektorienterad programmering i c++ - föreläsning 4

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

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container {

Exempel på användning av arv: Geometriska figurer

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

F4. programmeringsteknik och Matlab

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

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

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

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

Tentamen i TDP004 Objektorienterad Programmering Teoretisk del

Lösningsförslag till tentamen

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

JAVAUTVECKLING LEKTION 11

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00

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

2D1342 Programkonstruktion för F1, ht 2006

Operatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

OOP Objekt-orienterad programmering

1. Klass med en dynamiskt allokerad variabel, definitionsfilen-del Klass med en dynamiskt allokerad variabel, inkluderingsfilen.

Lösningsförslag till tentamen

Tentamen EDAF30 Programmering i C++

Properties. Användbara metoder som kan anropas i propertychanged:

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2002

TENTAMEN OOP

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

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

Lösningsförslag till tentamen

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

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

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

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

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

Lösningsförslag till tentamen

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

OOP Objekt-orienterad programmering

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Tentamen EDAF30 Programmering i C++

Laboration 13, Arrayer och objekt

tentaplugg.nu av studenter för studenter

1 Klasser och objektorientering Vad är objektorientering?

Transkript:

Högskolan Dalarna sid 1 av 5 Lösningsförslag till TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING 5p,för D2 1999-01-14 1. a) Systemavgränsningen är dokument som innehåller en kortfattad beskrivning av vad som begränsar systemet. b) Ett användningsfall beskriver ett händelseförlopp mellan aktör och systemet. c) Ett klassdiagram visar relationerna mellan de klasser som ingår i systemet. d) Ett interaktionsdiagram visar hur systemets objekt anropar varandra för att lösa en uppgift e) En leveransplan består av en plan för utveckling av körbara versioner av systemet 2. a) HUS FLERFAMILJHUS 2..* LÄGENHET 1 0..* BOENDE b) Association, aggregation och arv. 3. a) Person::Person(char *namnet, char *numret) strcpy(namn, namnet); strcpy(personnr, numret); Kurs::Kurs(char *kursen) strcpy(kursnamn, kursen); Elev::Elev(char *namnet, char *numret, char *kursen):person(namnet,numret),fysik(kursen) b) Det går inte att anropa klassen Persons medlemsfunktion "skrivperson" i funktionen "main" eftersom arvet från Person till Elev är "protected". c) Det går inte att anropa klassen Persons medlemsfunktion "skrivperson" i funktionen "main" eftersom arvet från Person till Elev är "private".

Högskolan Dalarna sid 2 av 5 4. import java.applet.*; import java.awt.*; import java.awt.event.*; Fel 1: public class Test implements Applet Rätt: public class Test extends Applet Fel 2: public Test() Rätt: public void init() Fel 3: knappen.addactionlistener(lyssnare()); Rätt: knappen.addactionlistener(new Lyssnare()); Fel 4: meddelande->settext("välkommen tillbaka!"); Rätt: meddelande.settext("välkommen tillbaka!"); Fel 5: return true; Rätt: //return true; dvs. satsen ska tas bort. 5. #include <iostream.h> class Koordinat Koordinat(int xkoord = 0, int ykoord = 0)x = xkoord; y = ykoord; int getx()constreturn x; int gety()constreturn y; int x, y; ; class Form virtual ~Form(); virtual double area()=0; ; class Cirkel : public Form Cirkel(int radie):pi(3.14159)r = radie; double area()return pi*r*r; const double pi; int r; ; class Polygon : public Form Polygon(Koordinat*, int); ~Polygon()delete[] k; double area(); int n; Koordinat *k; ; Polygon::Polygon(Koordinat* koor, int antal) n = antal; k = new Koordinat[n]; for (int i=0; i<n; i++) k[i] = koor[i];

Högskolan Dalarna sid 3 av 5 double Polygon::area() double serie = k[n-1].getx() * k[0].gety() - k[n-1].gety() * k[0].getx(); for (int i=1; i<n; i++) serie += k[i-1].getx() * k[i].gety() - k[i-1].gety() * k[i].getx(); return ((serie < 0)? -serie : serie) / 2.0; int main() int i = 0; Form *figur[2]; figur[0] = new Cirkel(1); Koordinat *corner = new Koordinat[2]; corner[0] = Koordinat(0,0); corner[1] = Koordinat(1,2); figur[1] = new Polygon(corner, 2); delete [] corner; cout << "Ytans storlek: " << figur[i]->area() << endl; corner = new Koordinat[3]; corner[0] = Koordinat(2,2); corner[1] = Koordinat(3,2); corner[2] = Koordinat(3,3); delete figur[1]; figur[1] = new Polygon(corner, 3); delete [] corner; cout << "Ytans storlek: " << figur[i]->area() << endl; delete figur[i]; return 0; 6. #include <fstream.h> #include <strstream.h> #include <string.h> int main() double a = 0.0; double b = 0.0; double summa = 0.0; char tecken[80] = '\0'; ifstream filein("decimaltal.txt"); filein.getline(tecken, sizeof tecken, '\n'); istrstream stringin(tecken); stringin >> a >> b; summa = a + b; ostrstream stringout(tecken, sizeof tecken); stringout << summa << ends; ofstream fileout("resultat.txt"); fileout.write(tecken, strlen(tecken)+1); return 0;

Högskolan Dalarna sid 4 av 5 7. a) class Letters : private set<char> Letters operator (const Letters &object)constreturn Union(object); ; b) class Letters : private set<char> friend Letters operator (const char *string, const Letters &object); Letters(const char *string)insertchars(string); Letters operator (const Letters &object)constreturn Union(object); ; Letters operator (const char *string, const Letters &object) return (object string);

Högskolan Dalarna sid 5 av 5 c) class LetterError; class Letters : private set<char> void insertletters(const char *string) throw(lettererror); ; class LetterError LetterError(const Letters errors)charerrors = errors; void forbiddenchars()const cout << "Felaktiga tecken: "; charerrors.print(); Letters charerrors; ; void Letters::insertLetters(const char *string) throw(lettererror) Letters alphabet, errors; char ch; int i = 0; for (ch='a'; ch<='z'; ch++) alphabet.insertchars(ch); for (ch='a'; ch<='z'; ch++) alphabet.insertchars(ch); while (i < strlen(string)) if (!alphabet.contains(string[i])) errors.insertchars(string[i]); i++; if (errors.isempty()) insertchars(string); else throw LetterError(errors);