Högskolan Dalarna sid 1 av 7 Data-sektionen Hans-Edy Mårtensson



Relevanta dokument
Skizz till en enkel databas

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

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

Introduktion till arv

Övningar Dag 2 En första klass

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

Tentamen i Programmering grundkurs och Programmering C

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

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

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

Klasser och objekt i C#

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

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

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.

OOP Objekt-orienterad programmering

Tentamen OOP

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Vi skall skriva uppsats

Programexempel: tärningsspel

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

ELEV- HANDLEDNING (Ansökan via webben)

Föreläsning 3: Vector och struct

Namn. Personnummer PROGRAMMET FÖR PERSONAL- OCH ARBETSLIVSFRÅGOR

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Programmeringsteknik med C och Matlab

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

( ostream ) << ( annan datatyp ) : ostream

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

Övning 4. Arv och andra relationer

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Tentamen I a och I b. Personlighet, hälsa och socialpsykologi, PC1245, Delkurs 1 Personlighet och hälsa Personlighet och Hälsa, PC1205 Helfart, vt 10

Manual HSB Webb brf

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

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

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

2D1310, 2D1311 Programmeringsteknik Tentamen (1p) 3 maj 2001, kl

TDDC76 - Programmering och Datastrukturer

Avgifter i skolan. Informationsblad

Tentamen EDAF30 Programmering i C++

Del A Frågor om deltagande i tillsynskampanjen och dess resultat, från april 2009 t.o.m. att enkäten besvaras

Du ska nu skapa ett litet program som skriver ut Hello World.

Tecken. char. char ch = A ; sizeof(char) = 1 byte (ej 16-bitars tecken som i Java) char namn[]= "Nils"; // längd = 5 bytes

Handbok Ämnesprov 2016 Lärarinmatning I Dexter Åk 3. Uppdaterad: /HL Version: IST AB

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Tentamen i Programmering grundkurs och Programmering C

INSTUDERINGSFRÅGOR TILL PROVET

Modul 6: Integraler och tillämpningar

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

PROGRAMMERING A VB6 UTVECKLINGSVERKTYGET VISUAL BASIC

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

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

Två konstiga klockor

En bra idé är att sedan välja ut de enskilda aktier eller index du vill titta på : När du uppdaterat kurserna klart sedan följa stegen nedan:

Tentamen i Modern fysik, TFYA11, TENA

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

Datorövning 2 Statistik med Excel (Office 2007, svenska)

OOP Omtenta

TIMREDOVISNINGSSYSTEM

DATASAMORDNING NYHETERNA I CHAOS Utbildning Chaos/Handledning - Nyheterna i Chaos 3/

Detta kan du förvänta dig av kommunens service. Lokala värdighetsgarantier inom socialtjänstens omsorg om äldre

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

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Särskilt stöd i grundskolan

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

Hur skapar man formula r

Utforska rymden med iphone

Java M1 V2 L2 K2 TM W. Tentamen i Programmering , kl LUNDS TEKNISKA HÖGSKOLA Institutionen för datavetenskap.

Enkät i förskoleklass

Nationell källa för ordinationsorsak kopplad till nationell informationsstruktur

Tentamensdeltagare från Dataekonomutbildningen, Textilekonomutbildningen och Affärsinformatikutbildningen.

Institutionen för matematik Envariabelanalys 1. Jan Gelfgren Datum: Fredag 9/12, 2011 Tid: 9-15 Hjälpmedel: Inga (ej miniräknare)

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

729G04 - Hemuppgift, Diskret matematik

Presentationsmaterial om den nya förstasidan och funktionerna Nya företag. Datum:

Distribuerade system. CORBA eller RMI

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Programmera en NXT Robot

Utveckla arbetsmiljö och verksamhet genom samverkan

Instruktion för att hämta adresser via Navet

LATIN SPRÅK OCH KULTUR

TENTAMEN I REGLERTEKNIK Y (TSRT12)

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Distribuerade Informationssystem VT-04

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Kom igång med RIB Karta 1

ANVÄNDARHANDLEDNING FÖR

Använda Esri Sveriges svenska baskartor i ArcGIS Online och ArcMap som administratör

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Lokal kursplan för Ängkärrskolan år 9 Rev Positionssystemet. -Multiplikation och division. (utan miniräknare).

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

TDIU01 - Programmering i C++, grundkurs

VÄGLEDNING EXAMINATION Behörig Ingenjör Inbrottslarm Enligt SSF 1016, utgåva 1 Version:

DELPROV 1 I DATAVETENSKAP

Vad är en einfrastruktur för eförvaltning? einfrastruktur: Insatsområde 2

Transkript:

Högskolan Dalarna sid 1 av 7 TENTAMEN I PROGRAMUTVECKLINGSMETODIK, DEL 2 för SY1 2001-05-30, kl 09.00-13.00 Hjälpmedel: Inga hjälpmedel är tillåtna Återlämningstillfälle: Fredag den 15 juni kl 12.00 i S319. Max: 60 poäng. Betygsgränser: betyg G - ca 36p, betyg VG - ca 48p Skriv tydliga och kortfattade svar! 1. Objektorienterade programspråk, grundläggande begrepp. (10p) Svara på följande frågor. Begränsa dina svar till ungefär fem till sex rader per svar. a) Förklara skillnaden mellan de båda begreppen objekt och klass. (2p) b) Vad menas med inkapsling? (2p) c) Vad är arv? (2p) d) Vad innebär polymorfi? (2p) e) Förklara skillnaden mellan de båda begreppen attribut och operation (2p) 2.Objektorienterad systemutveckling (10p) a) Förklara begreppen aktör. (2p) b) Vad menas med domänanalys? (2p) c) Vilka användningsfall bör förekomma i utvecklingsprocessens tidigaste iterationer. (2p) d) Förklara hur användningsfallen används i utvecklingsprocessen. (2p) e) Beskriv en metodik för att hitta klasser (2p)

Högskolan Dalarna sid 2 av 7 3. Klasser (10p) Här följer definitioner av klasserna Sphere och Box. class Sphere Sphere(double radien):pi(3.14)radie = radien; double area()return radie*radie*pi*4.0; //3.14*4 = 12.56 double volyme()return radie*radie*radie*pi*4.0/3.0; //3.14*4/3 = 4.18667 double getradie()return radie; double radie; const double PI; ; class Box Box(double asida, double bsida, double csida)a = asida; b = bsida; c = csida; double volyme()return a * b * c; double getsidaa()return a; double getsidab()return b; double getsidac()return c; double a, b, c; ; a) Återge exakt den utskrift som följande main-funktion ger. (2p) Sphere thesphere(10.0); double radie = 0.0; double area = 0.0; radie = thesphere.getradie(); area = thesphere.area(); cout << "Radie = " << radie << endl; cout << "Area = " << area << endl;

Högskolan Dalarna sid 3 av 7 b) Följande main-funktion fungerar inte. Den innehåller fyra fel och ett antal följdfel orsakade av dessa fyra fel. Beskriv vart och ett av de fyra felen och var i koden varje fel förekommer. (8p) Sphere thesphere(10); Box thebox(20.0); double radie = thesphere.radie; double a = thebox.a; double area = thesphere.area(1.0); cout << "Radien = " << radie << ", area = " << area << endl; cout << "Sida A = " << a << ", area = " << thebox.area() << endl; 4. Arv och polymorfi (10p) I den här uppgiften ska klasserna Sphere och Box i uppgift 3 användas. a) Skriv en klass Cube som ärver av klass Box. Medlemsfunktionen "volyme()" får inte definieras i klass Cube. Följande main-funktion ska gå att köra. (4p) #include <iostream.> Cube cubea(2.0), cubeb(3.0); cout << "Kub A, volym = " << cubea.volyme() << endl; cout << "Kub B, volym = " << cubeb.volyme() << endl; Mainfunktionen ska generera följande utskrift: Kub A, volym = 8 Kub B, volym = 27

Högskolan Dalarna sid 4 av 7 b) Skriv en klass Solid och modifera klasserna Sphere och Box så att följande main-funktion blir möjlig att köra. Observera att du inte behöver upprepa koden för klasserna Sphere och Box, utan endast beskriva förändringarna i de båda klasserna. (6p) Solid *pekare[2]; pekare[0] = new Sphere(10.0); pekare[1] = new Box(20.0, 30.0, 40.0); cout << "Sfärens volym = " << pekare[0]->volyme() << endl; cout << "Rätblockets volym = " << pekare[1]->volyme()<< endl; delete pekare[0]; delete pekare[1]; pekare[0] = new Sphere(1.0); pekare[1] = new Box(1.0, 2.0, 3.0); cout << "Sfärens volym = " << pekare[0]->volyme() << endl; cout << "Rätblockets volym = " << pekare[1]->volyme()<< endl; delete pekare[0]; delete pekare[1]; Mainfunktionen ska generera följande utskrift: Sfärens volym = 4186.67 Rätblockets volym = 24000 Sfärens volym = 4.18667 Rätblockets volym = 6 5. Grafiska användargränssnitt (10p) a) Förklara vad en dialogmodell är och ge ett enkelt exempel på en sådan. (3p) b) Nämn tre riktlinjer för användning av knappar i grafiska gränssnitt (3p) c) Nämn två fallgropar som kan förekomma i samband vid utvekling av prototyper (2p) d) Vad är en "Style Guide"? (1p) e) Förklara vad som menas med en "metafor med magisk effekt". (1p)

Högskolan Dalarna sid 5 av 7 6) Unified Modeling Language (10p). a) Rita ett klassdiagram enligt UML som beskriver klasser och de typer av olika relationer som förekommer i följande program. Ta även med multipliciteter, dataattribut och operationer (5p) b) Rita ett sekvensdiagram enligt UML. Beskriv med hjälp av diagrammet hur en aktör och programmets objekt samverkar när aktören väljer alternativ 2, "Visa Bok". (5p) #include <string> //-Definitioner av klasser--------------------------------- class Bok Bok(string entitel, string enforfattare) :titel(entitel), forfattare(enforfattare) string gettitel()return titel; string information()return titel + ", skriven av " + forfattare; string titel; string forfattare; ; class Hylla Hylla(); ~Hylla(); void nybok(string titel, string forfattare); void visatitlar(); void visabok(int nr); Bok *boken[20]; int antaltitlar; ; class Meny Meny(); void skrivmeny(); Hylla hyllan; ; //Programmets kod forsätter på följande sida

Högskolan Dalarna sid 6 av 7 //-Hylla, medlemsfunktioner-------------------------------- Hylla::Hylla():antalTitlar(0) for (int i=0; i<20; i++) boken[i] = 0; Hylla::~Hylla() for (int i=0; i<antaltitlar; i++) delete boken[i]; void Hylla::nyBok(string titel, string forfattare) if (antaltitlar < 20) boken[antaltitlar++] = new Bok(titel, forfattare); void Hylla::visaTitlar() for (int i = 0; i < antaltitlar; i++) cout << i << "; " << boken[i]->gettitel() << endl; void Hylla::visaBok(int nr) if (nr >= 0 && nr < antaltitlar) cout << boken[nr]->information() << endl; //Programmets kod forsätter på följande sida

Högskolan Dalarna sid 7 av 7 //- Meny, medlemsfunktioner ------------------------------- Meny::Meny() char val[80], titel[80], forfattare[80]; int nr; skrivmeny(); cin.getline(val,sizeof(val),'\n'); while (val[0]!= '0') switch(val[0]) case '1': cout << "Titel: "; cin.getline(titel,sizeof(titel),'\n'); cout << "Forfattare: "; cin.getline(forfattare,sizeof(forfattare),'\n'); hyllan.nybok(titel, forfattare); break; case '2': hyllan.visatitlar(); cout << "Visa bok nr: "; cin >> nr; cin.get(); //Läser bort '\n' hyllan.visabok(nr); break; default: cout << "Fel val!" << endl; skrivmeny(); cin.getline(val,sizeof(val),'\n'); void Meny::skrivMeny() cout << "*Hyllan****************" << endl; cout << "0 <- Avsluta" << endl; cout << "1 <- Ny bok" << endl; cout << "2 <- Visa bok" << endl; cout << "***********************" << endl; cout << "Alternativ (0, 1, 2)?:"; //- main-funktionen --------------------------------------- Meny menyn;