Objektorienterad programmering, Java, 5p TDBA63

Relevanta dokument
TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

DELPROV1. Objektorienterad programmeringsmetodik, 7.5p 5DV081, 5DV109

TENTAMEN I DATAVETENSKAP

DELPROV2. Objektorienterad programmeringsmetodik (för ÖI), 7.5p 5DV081, 5DV090

PRAKTISKT DELPROV I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH

DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA

DELPROV 1 I DATAVETENSKAP

PROGRAMMERING I ETT OBJEKTORIENTERAT SPRÅK (JAVA), 5P

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl

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. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Tentamen i Grundläggande programmering STS, åk

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

DELPROV 2 PROGRAMMERINGSMETODIK OCH

DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA

Tentamen TEN1 HI

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 Programmeringsteknik För Ing. - Java, 5p

HI1024 Programmering, grundkurs TEN

Tentamen TEN1 HI

Uppgift 1 ( Betyg 3 uppgift )

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

kl Tentaupplägg

PROGRAMMERINGSTEKNIK TIN212

Tentamen, EDAA10 Programmering i Java

TDIU01 / 725G

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

GPT The bitter end. Förra veckan: Rekursiva funktioner som läggs in externa filer har stor räckvidd

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

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

Objektorienterad Programmering (TDDC77)

Tentamen i Grundläggande programmering STS, åk 1 lördag

TDIU Regler

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

Tentamen i Grundläggande Programvaruutveckling, TDA548

kl Tentaupplägg

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.

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

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Föreläsning 11. Giriga algoritmer

HI1024 Programmering, grundkurs TEN

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Tentamen i Grundläggande programmering STS, åk

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 8 10, 7 april 2016

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

DAT043 Objektorienterad Programmering

kl Tentaupplägg

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 19 oktober 2016, kl 14 18

TDDC77 Objektorienterad Programmering

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i Programmering grundkurs och Programmering C

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

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

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen i Grundläggande Programvaruutveckling, TDA548

Uppgift 1a (Aktiekurser utan poster)

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Tentamen i Objektorienterad programmering

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Värmedistribution i plåt

TDDC74 Programmering, abstraktion och modellering. Tentamen

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Objektorienterad programmering D2

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

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Uppgift 1 ( Betyg 3 uppgift )

Tentamen TEN1 HI

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

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

TDP Regler

TDP Regler

Försättsblad till skriftlig tentamen vid Linköpings Universitet

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Uppgift 1 ( Betyg 3 uppgift )

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

ÄMNESPROV I MATEMATIK Skolår 9 Delprov B

För alla uppgifter på tentan gäller: Man får använda både standard-c++ (som till exempel har pekare som anges med * och objekt som skapas med new) och

HI1024 Programmering, grundkurs TEN

729G74 - IT och programmering, grundkurs. Dugga.

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Transkript:

UMEÅ UNIVERSITET Datavetenskap 030219 PRAKTISKT DELPROV Objektorienterad programmering, Java, 5p TDBA63 Datum : 030205 Tid : 9 13 Hjälpmedel : Allt. Kommunikation med andra personer (direkt eller indirekt) är dock inte tillåten, som t ex via mail, mobiltelefon, gemensamma kataloger etc. Antal uppgifter : 4 Totalpoäng : 34 (halva poängtalet TP+PP krävs normalt för godkänt) Kryssa för de uppgifter du lämnar in. Tankegången skall vara lätt att följa. Alla antaganden som inte är uppenbara skall redovisas. Namn, personnummer, användarnamn och sökvägen till filen/filerna skall finnas på all källkod. Källkod skrivs ut i ett ickeproportionellt typsnitt (t.ex. courier). Tips! Försök lösa alla uppgifter! Observera att uppgifterna inte är ordnade efter svårighetsgrad. Det är ditt ansvar att övertyga om att du besitter den kunskap som efterfrågas. Uppgifter kan vara felformulerade, fråga om du är osäker eller tycker att något verkar konstigt. Redovisa dina resonemang så är det lättare att bortse från skrivfel. Det är viktigt att du löser den givna uppgiften! OBS! Kontrollera att din dator fungerar innan du börjar på allvar. Lycka till! UMEÅ UNIVERSITET 901 87 UMEÅ Johan Eliasson Tel.: 070-2378695 e-mail: johane@cs.umu.se

Innan du börjar skall du göra följande: Logga in på Unix-systemet (peppar) med hjälp av putty Gå till din katalog edu/java *: cd edu/java Skapa en ny katalog mkdir pp030219 Skydda katalogen chmod 700 pp030219 I katalogen pp030219 sparar du sedan alla filer som du skriver under denna tenta *) Har du inte dessa kataloger så skapa dem: mkdir edu cd edu mkdir java Efter provet, tidigast klockan 13.00 Logga in på Unix-systemet (peppar) med hjälp av putty Gå till din katalog edu/java: cd edu/java Ändra filskyddet chmod R 705 pp030219 Provet är uppdelat i två delar Del 1 (uppgift 1-3): Här skall alla uppgifter göras Del 2 (uppgift 4 & 5): Här skall ni göra en av de två uppgifterna Totalt skall ni alltså göra fyra uppgifter tre från del ett och en från del två Regler för det praktiska provet Detta är en del av examinationen och skall alltså ske under tentamensliknande förhållanden. Examinationen är individuell och betygsgrundande. Detta får följande konsekvenser : o Man är personligt ansvarig för de lösningar som lämnas in o Om man hittar lösningar eller delar av lösningar på nätet eller i litteraturen bör detta tydligt anges. Du är fortfarande skyldig att själv vara fullständigt insatt i den lösning du redovisar och på uppmaning ska du kunna svara för innehåll och funktion i hela eller delar av lösningen. o Självklart får man inte söka eller hämta kod från någon av de övriga tentanderna, detta betraktas som fusk och handläggs som sådant Några riktlinjer för hur lösningarna bedöms : o Koden skall följa god programmeringsmetodik, vilket t.ex. innebär konsekvent indenterad och lämpligt kommenterad källkod. o Lösningen behöver inte gå att kompilera för att ge full poäng, så låt inte troliga syntaxfel ta för mycket tid i anspråk om du känner dig övertygad om att du löst det givna problemet. o Det räcker därför inte att en lösning fungerar för att ge full poäng, även här måste man på ett rimligt sätt underordna sig kravet på god programmeringsmetodik 2

Del 1 Uppgift 1. (8 poäng) Skriv en metod substitutestring. Funktionen skall ta tre stycken strängar och i den första av dessa tre leta efter den andra. Alla förekomster av denna sträng skall bytas ut mot den tredje strängen i resultatet. Förekommer inte den andra strängen som en delsträng i den första ska funktionen bara returnera den första utan några förändringar. Exempel: replacesubstring( Jag kan svaret. Jag är bra, Jag, Du ) Resultat: Du kan svaret. Du är bra replacesubstring( Jag kan inte detta, inte, ) Resultat: Jag kan detta Uppgift 2. (8 poäng) I denna uppgift så ska du givet en textfil med heltal (ett tal per rad). Din uppgift är att skriva ett program som läser in talen och beräknar medelvärdet av dem. Ett exempel på en fil finns på websidan för det praktiska provet (om ni inte vill skriva ihop en egen) Uppgift 3. (8 poäng) I denna uppgift ska du skriva en enkel klass för att hantera rationella tal. Rationella tal är tal som kan skrivas på formen p/q där p och q är heltal. Klassen skall ha metoder för att ändra värdet på täljaren (p), ändra värdet på nämnaren (q) samt en metod för att omvandla det till ett värde av typen double. Förutom dessa metoder ska klassen implementera interfacet java.lang.comparable (se API beskrivningen för beskrivning av detta interface) Del 2 (Ni får välja att göra en (max) av uppgifterna i denna del) Uppgift 4. (10 poäng) Konsum på Ålidhem behöver hjälp. De skulle behöva införskaffa ett automatiskt system som hanterar växelpengarna som kunderna ska få tillbaka (liknande det som ICA har). I denna uppgift så ska du implementera en grund till detta system. Systemet skall ju hantera pengar så ni kommer att behöva implementera enkla klasser för att hantera dessa. För att underlätta uppgiften lite så behöver ni i detta skede bara bry er om följande valörer på sedlar 100 och 20; respektive mynt 5 och 1 kr. Mynt/sedlar av andra valörer ska inte få förekomma. 3

Krav på Systemet: Det kan lagra max 20 st. sedlar och max 20 st. mynt vid varje tillfälle. Man skall kunna lägga till pengar i systemet (givetvis endast i de godkända valörerna). Givetvis ska man också kunna plocka ut pengar ur systemet. För att det ska fungera så måste det givetvis finnas en/ett sedel/mynt av motsvarande valör instoppad (annars skall ett felmeddelande ges till användaren). Skriv också en enkel klass som testar/demonstrerar hur ditt system fungerar genom att sätta in och ta ut lite pengar av olika valörer. För full poäng så krävs att ni har gjort en vettig klassuppdelning utifrån de principer som vi gått igenom på kursen. Samt att ni konstruerat era klasser (metoder osv.) på ett sådant sätt så att de blir lätta att använda t.ex. då man i ett senare skede skulle vilja vidareutveckla systemet. Uppgift 5 (10 poäng) I denna uppgift ska ni skriva ihop klasser som tillsammans ska kunna bli en sifferdisplay. Sifferdisplayen ska kunna visa alla siffror från 0 till 999. Till er hjälp så ni en klass Display som man kan använda för att rita upp siffrorna. Denna behöver också klasserna Rectangle, Figure och DrawingPaper för att fungera. Alla dessa klasser finns på websidan för det praktiska provet. De klasser ni ska skriva är DigitDisplay Denna klass skall representera en enskild siffra i er sifferdisplay. Lämpligen ärver klassen den givna Display. Förutom de metoder som finns i Display skall det enkelt genom er klass gå att visa upp en godtyckligsiffra mellan 0-9 NumberDisplay I denna klass ska ni skapa er taldisplay. Den ska ha minst en metod som visar ett godtyckligt tal mellan 0 och 999. Anropar man denna metod med ett tal utanför detta intervall skall ett undantag kastas. Nedan har ni en bild av hur de olika siffrorna ser ut (Ett objekt av typen NumberDisplay skall alltså bestå av tre siffror som de nedan) 4

5