DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA

Storlek: px
Starta visningen från sidan:

Download "DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA"

Transkript

1 UMEÅ UNIVERSITET Inst. för Datavetenskap DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA FÖR INGENJÖRER, 5P. (TDBA62) Datum : Tid : 4 timmar (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 Poäng : 32 (delprovet får ej underskrida 30% av poängtalet, halva poängtalet (dp1 + dp2) krävs normalt för godkänt) Provet består av 4 uppgifter: 1 och 2 samt två (2) fritt valda uppgifter bland 3,4,5, 6 & 7. Kryssa för de uppgifter du lämnar in. Källkod skrivs ut i ett ickeproportionellt typsnitt (t.ex. courier). Namn, personnummer, användarnamn(@cs.umu.se) och sökvägen till filen/filarna skall finnas på all källkod. Skriv din dators namn på försättsbladet. Lösningarna skall vara snyggt och prydligt nedskrivna. Tankegången skall vara lätt att följa. Alla antaganden som inte är uppenbara skall redovisas. Den kod som ges i denna skrivning finns under länken dp på kursens hemsida. Här finns också andra eventuella filer som du kan behöva. Denna mapp kallas i resten av provtexten för provmappen. OBS! Kontrollera att din dator fungerar innan du börjar. Lycka till! UMEÅ UNIVERSITET UMEÅ Tel.: Fax: marie@cs.umu.se

2 Innan du börjar skall du göra följande: 1. Logga in på Unix-systemet med hjälp av putty 2. Om du har gjort i ordning katalogerna edu och java gå till steg 3: Skapa en ny katalog >mkdir edu Skydda katalogen med följande kommandon: >chmod 700 edu/ >setfacl -r -m g:tdb:r-x edu/ Gå ned i katalogen edu >cd edu Skapa en ny katalog java >mkdir java Skydda katalogen: >setfacl -r -m g:tdb:r-x java/ 3. Gå till din katalog >cd java eller >cd /edu/java om du hoppat direkt hit efter steg 1 4. Nu skapar du en plats för provets filer i /edu/java-katalogen Skapa en ny katalog >mkdir dp Skydda katalogen: >setfacl -r -m g:tdb:r-x dp / 5. Testa din inställning genom att gå till adressen och klicka på Testa rättigheter. Logga in med ditt användarnamn och lösenord (på cs) och testa katalogen edu/java/dp Observera att ditt prov inte kan rättas om vi inte får tillgång till dina filer! 2(2)

3 Regler för delprov 2 Provet ä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: Man är personligt ansvarig för de lösningar som lämnas in. Om man hittar lösningar eller delar av lösningar på nätet eller i litteraturen bör detta tydligt anges och man är fortfarande skyldig att själv vara fullständigt insatt i den lösning man redovisar och på uppmaning kunna svara för innehåll och funktion i hela eller delar av lösningen. 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: Koden skall följa god programmeringsmetodik, vilket t.ex. innebär konsekvent indenterad och lämpligt kommenterad källkod. Lösningen behöver inte gå att kompilera för att ge 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, 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. 3(3)

4 Uppgift 1 (6 poäng) Klassen LivsMedel nedan är given (filen finns i provmappen). Klassen LivsMedel är abstrakt eftersom den har en abstrakt metod. Härled klassen Mjol från LivsMedel så att du på lämpligt sätt återanvänder den befintliga koden och gör klassen Mjol instantierbar. * Livsmedel är basklass för olika kategorier av livsmedel, * som gryn, mjöl, vätska osv. * (Marie & Lena) (dp2_050602) public abstract class LivsMedel private int mgd; private String enhet; private String namn; private boolean kanfrysas; private int inkopsdatum; * Konstruktor för LivsMedel public LivsMedel(int mgd, int indat, String namn, boolean frysbar, String mgdenhet) this.mgd = mgd; kanfrysas = frysbar; inkopsdatum = indat; enhet = mgdenhet; this.namn = namn; public int getmgd() return mgd; //getmgd 4(4)

5 public String getenhet() return enhet; //getenhet public String getnamn() return namn; //getnamn * Jämförelse av livsmedel * m livsmedel att jämföra med true om this.getnamn() samma som m.getnamn() public boolean sammasom(livsmedel m) return (this.getnamn().tolowercase().equals(m.getnamn().tolowercase())); * Jämförelse * m matobjekt att jämföra med (vikt eller volym) -1 om this < m, 0 om lika och +1 om this > m public abstract int jmfrmed(livsmedel m); //LivsMedel Uppgift 2 (6 poäng) Du är delaktig i ett projekt som utvecklar en varuautomat. Automaten innehåller ett antal olika varor och man kan mata in mynt i valörerna 1, 5, 10 och 20 kronor. Systemet som utvecklas innehåller just nu klasserna Varuautomat och MyntSamlare. Klassen Myntsamlare används dels för att samla in mynten som kunden betalar in och dels för att ge korrekt växel tillbaka till kunden. Din uppgift är att skriva metoden gevaxel som ska ligga i klassen Varuautomat med följande signatur: public MyntSamlare gevaxel(myntsamlare betalt, int kostnad) Du behöver alltså inte bry dig om hur varuautomaten är konstruerad för övrigt. Du får in ett objekt betalt som innehåller de mynt kunden matat in och parametern kostnad är kostnaden för de varor kunden köpt. Metoden ska returnera ett objekt av klassen Myntsamlare där följande villkor är uppfyllda: om kunden betalt för lite ska det synas genom att antalet mynt i objektet är -1 om kunden betalt exakt den summa som matats in ska (så klart!) antalet växelmynt vara 0 i alla övriga fall ska myntens sammanlagda värde exakt uppgå till det eftersökta växelbeloppet ett så litet antal mynt som möjligt ska användas. Vi antar att det finns tillräckligt många mynt i automaten av varje valör. Koden till Myntsamlare finns på nästa sida (den fullständiga koden finns i provmappen). 5(5)

6 6(6)

7 * MyntSamlare är en samling mynt i en varuautomat * Lena KW dp public class MyntSamlare // Antalet mynt som finns i automaten private int enkronor; private int femmor; private int tior; private int tjugor; public MyntSamlare() enkronor = 0; femmor = 0; tior = 0; tjugor = 0; public void adderaenkronor(int antal) enkronor = enkronor + antal; public void adderafemmor(int antal) public void adderatior(int antal) public void adderatjugor(int antal) Fungerar som adderaenkronor public int antalenkronor() return enkronor; public int antalfemmor() public int antaltior() public int antaltjugor() Fungerar som antalenkronor * tostring returnerar en sträng som beskriver objektet public String tostring() return "Enkronor: " + enkronor + "\nfemkronor: " + femmor + "\ntiokronor: " + tior + "\ntjugokronor: " + tjugor; //tostring //MyntSamlare 7(7)

8 I den följande delen får du lämna in högst två av uppgifterna Uppgift 3 (6 poäng) Studentexpeditionen på datavetenskap dras med ett rätt ålderstiget system för att hålla reda på alla kurser och studenter. Du får chansen att föreslå en design för ett nytt system som underlättar administrationen av studenternas kursval, registreringar och resultat. I systemet ska studenterna kunna välja vilka kurser de vill gå en viss termin och lärarna får välja vilka kurser de vill undervisa i. Inför varje terminsstart kan studenterna och lärarna begära en lista med aktuella kurser för en viss termin och göra sina val. För varje kurs finns en övre och en undre gräns på antalet deltagare. För att planera sina studier måste det vara möjligt att kunna ta reda på hela kursutbudet (dvs. inte bara på den aktuella terminen). Studenterna får välja högst fyra kurser plus högst två kurser som alternativ (om någon av kurserna skulle ställas in). I systemet finns också information om schemat för varje kurs. När studenterna gör sina val får de ut ett övergripande schema, så att de kan se om kurserna krockar (och i så fall kunna välja andra kurser för att undvika detta). Systemet måste kunna kontrollera att en student bara söker till kurser där denna uppfyller förkunskapskraven. Notera att förkunskaperna kan ändras med tiden och att kurser ibland kan tillgodoräknas som andra kurser. Lämna in en UML-liknande beskrivning av designen som innehåller alla klasser och som visar hur de hänger ihop. Oavsett vilken notation du väljer (UML eller egen) måste du förklara vad ev. pilar och streck representerar. Observera att det inte duger med CRC-kort som beskrivning. För varje klass ska viktiga attribut, metoder och parametrar finnas med. Detta får du gärna lämna in handskrivet. Uppgift 4 (3+5=8 poäng) Utgå från följande interface: Interface för objekt som kan mätas public interface Measurable Beräknar måttet för the measure double getmeasure(); a) Implementera en klass Die som representerar en sex sidig tärning. Din tärningsklass ska implementera interfacet ovan (måttet blir i detta fall tärningens värde). Det ska förutom den metod som specificeras i interfacet finnas en metod för att slå tärningen. För att ta fram slumptalen kan ni använda er av metoden Math.random() som ger ett slumptal i intervallet 0-1 (exklusive 1) som ett värde av typen double. 8(8)

9 b) Skriv ett litet testprogram som visar hur din tärningsklass tillsammans med klassen DataSet nedan kan användas för att beräkna medelvärdet av 100 tärningsslag public class DataSet private double sum; private Measurable maximum; private int count; Skapar en tom datamängd. public DataSet() sum = 0; count = 0; maximum = null; Lägg till ett värde till x värdet public void add(measurable x) sum = sum + x.getmeasure(); if (count == 0 maximum.getmeasure() < x.getmeasure()) maximum = x; count++; beräkna medelvärdet av medelvärdet eller 0 om inget värde har lagts till public double getaverage() if (count == 0) return 0; else return sum / count; Ta fram det största värdet i maxvärdet eller null om inget värde lagts till public Measurable getmaximum() return maximum; Koden finns i provmappen. 9(9)

10 Uppgift 5 (10 poäng) Ett vanligt sätt att implementera dynamiska datastrukturer (t.ex. träd, stackar och köer) i programspråk är att använda så kallade länkade listor. En länkad lista består av ett antal noder, som innehåller dels det data som man vill lagra i datastrukturen, dels en eller flera referenser till andra noder. En nod i en enkellänkad lista har en referens till nästföljande nod, såsom visas i bilderna nedan. Observera att den sista nodens next-referens har värdet null för att markera slutet på listan. En fördel med att implementera strukturer på detta sätt är att ingen onödig plats behöver reserveras, strukturen är aldrig större än det antal element den innehåller vid en viss tidpunkt. Se klassdiagram för klassen QNode, som innehåller ett flyttal: tail Så här kan ett antal noder vara länkade under körningen av ett program: head Referensvariabeln head håller reda på köns första nod, dvs. en referens till ett objekt av klassen QNode och referensvariabeln tail refererar till köns sista nod. En kö är en datastruktur som kan implementeras med hjälp av en enkellänkad lista. En kö fungerar som en vanlig (ideal) kö: när man kommer till kön ställer man sig sist och den som står först i kön är den som först lämnar den. Uttag görs alltså i början av kön, medan insättningar görs i sist i kön. Elementära funktioner för en kö är bl.a.: add get isempty lägger till ett element sist tar bort och returnerar första elementet kontrollerar om kön är tom Implementera klassen QNode enligt ovan. Skriv sedan kö-klassen Q, med åtminstone ovanstående metoder, som använder en lista av noder för att lagra elementen i kön. Följande testprogram skall fungera med din lösning: public class Test public static void testaq() Q q = new Q(); try double n0 = q.get(); //#0--finns inte! catch (NullPointerException e) System.out.println("Man kan inte ta bort element ur en tom kö!\n"); if (q.isempty()); System.out.println("Ny tom kö skapad!\n"); 10(10)

11 q.add(7.5); //#1 q.add(-44.1); //#2 q.add(34.9); //#3 q.add(12.34); //#4 q.printq(); double n1 = q.get(); //#1 double n2 = q.get(); //#2 q.printq(); if (q.isempty()) System.out.println("Kön är tom"); else System.out.println("Kön är inte tom"); q.printq(); //testaq //Test Testprogrammet finns i provmappen. Man kan inte ta bort element ur en tom kö! Ny tom kö skapad! Köns längd = 4 Kö[1] = 7.5 Kö[2] = Kö[3] = 34.9 Kö[4] = Köns längd = 2 Kö[1] = 34.9 Kö[2] = Kön är inte tom Köns längd = 2 Kö[1] = 34.9 Kö[2] = Uppgift 6 (8 poäng) I den här uppgiften bygger vi vidare på Livsmedels-uppgiften (uppgift 1). Nu skulle vi vilja ha en receptklass för att enkelt kunna kolla om det som finns hemma räcker för ett visst recept. Varje recept innehåller bl.a. en uppräkning av ingredienser. Dessutom ska receptet ha en metod som kan ta en lista av LivsMedel, jämföra den med receptets egna ingredienser och avgöra om dessa räcker för att tillreda det som receptet beskriver. Härled ytterligare två klasser från LivsMedel, så att du kan konstruera objekt av klassen Recept med mer än en sorts ingrediens. Konstruera sedan en metod i Recept som gör den beskrivna jämförelsen. Naturligtvis behöver inte livsmedlen komma i samma ordning i de båda listorna. Alla receptets ingredienser behöver inte finnas med i den lista man jämför med. För att veta att man jämför samma sorts livsmedel räcker det (i det här exemplet) att man jämför den sträng som representerar namnet. Du behöver inte heller kontrollera att enheterna är desamma vid jämförelsen. Några exempel: Receptets ingredienser 3 dl vetemjöl 2 dl mjölk 1 st ägg 2 dl socker Lista1 (kylskåpet) 10 dl vetemjöl 10 dl mjölk Lista2 (kylskåpet) 3 st ägg 1 dl socker 10 dl vetemjöl 20 dl mjölk Lista3 (kylskåpet) 2 dl mjölk 100 g margarin 2 dl socker 3 dl vetemjöl 2 dl kaffe Ok! (alla ingredienser räcker) Ej ok! (minst en komp. räcker inte) Ok! (alla räcker) 11(11)

12 Uppgift 7 (10 poäng) Människan har i alla tider fascinerats av krypton och chiffer 1. I början användes enkla s.k. substitutionskrypton. Dessa går principiellt ut på att man alltid byter ett visst tecken mot ett annat givet tecken, vilket bestäms av den s.k. nyckeln. Så här går krypteringen till: abcdefghijklmnopqrstuvwxyzåäö //klartextalfabet öäåzyxwvutsrqponmlkjihgfedcba //nyckel Meddelande t e n t a Kryptotext1 j y p j ö Vid dekryptering så kör man denna process åt andra hållet för att komma tillbaka till originalmeddelandet. För varje tecken i den krypterade strängen tar man tecknet i samma position i nyckeln och får tillbaka klartexten. Så här: Kryptotext1 j y p j ö Meddelande t e n t a Detta kallas ett monoalfabetiskt substitutionskrypto. Dessa visade sig vara enkla att avkoda eftersom man vet att vissa bokstäver är mer frekventa i språket än andra (dessutom är vissa bokstavskombinationer mer frekventa). Därför kunde man genom att göra en frekvensanalys av den krypterade texten ta fram nyckeln till substitutionerna. Alldeles enkelt är det inte att få det rätt, men man kan alltid göra ett första försök. Konstruera åtminstone följande: en metod som krypterar enligt substitutionsprincipen en metod som dekrypterar enligt substitutionsprincipen. en metod som räknar frekvenser av tecken i den krypterade texten en metod som dechiffrerar den krypterade texten. Dechiffreringen görs genom att jämföra frekvenserna med fördelningen av tecken i svenska språket (se frekvenstabellen nedan). Det mest frekventa tecknet i den krypterade texten byts mot det vanligast förekommande tecknet i svenska språket (vilket är bokstaven e) osv. Någon form av sortering behövs alltså, men det spelar ingen roll vilken sorteringsmetod (algoritm) du väljer. Med all säkerhet kommer detta inte att ge tillbaka den ursprungliga texten, eftersom det krävs en lång text för att frekvensanalysen skall fungera bra. Du behöver inte kontrollera att den krypterade texten bara innehåller tecknen a,.., ö. Att formatera strängen på lämpligt sätt överlåter vi för tillfället till någon annan, så att det är gjort före anropet av dechiffreringsmetoden. 1 Texten i denna uppgift är baserad på beskrivningen i Simon Singhs bok Kodboken, MånPocket 2001, ISBN Rekommenderas! 12(12)

13 Du får själv välja hur koden ska organiseras, statiska metoder är helt ok, vill du starta i main så går det också bra. Självklart kan inte allt ligga i en metod i en klass, så god metodik krävs oavsett hur du väljer. Din lösning skall gå att provköra med följande kod (finns i provmappen): String alfabet = "abcdefghijklmnopqrstuvwxyzåäö"; String nyckel = "öäåzyxwvutsrqponmlkjihgfedcba";//exempelvis String kryptotext = encrypt(klartext, nyckel); System.out.println("Krypterad\t" + kryptotext); String dekrypterad = decrypt(kryptotext, nyckel); System.out.println("Dekrypterad\t" + dekrypterad); String dechiffrerad = dechipher(kryptotext); System.out.println("Dechiffrerad\t" + dechiffrerad); Frekvenstabell för svenska språket (finns inskriven i tillsammans med ovanstående så att du slipper skriva av den): a b c d e f g h i j k l m n o p q r s t u v w x y z å ä ö Uppgiften fortsätter på nästa sida! 13(13)

14 Alfabet abcdefghijklmnopqrstuvwxyzåäö Nyckel öäåzyxwvutsrqponmlkjihgfedcba Klartext Krypterad Dekrypterad dettaärenjättelångtextsominteharnågrablanktecken zyjjöblyptbjjyrcpwjyfjkoqupjyvölpcwlöäröpsjyåsyp dettaärenjättelångtextsominteharnågrablanktecken Strängens längd = 48 Efter frekvenssortering görs följande byten: Nyckelns tecken i motsvarande position (ö) a byts mot q (z) d byts mot z (y) e byts mot w (w) g byts mot x (v) h byts mot y (u) i byts mot j (q) m byts mot p (p) n byts mot b (f) x byts mot c (x) f byts mot ö (s) k byts mot å (o) o byts mot u (m) q byts mot f (j) t byts mot h (i) u byts mot ä (h) v byts mot v (d) z byts mot k (c) å byts mot g (b) ä byts mot m (ä) b byts mot o (å) c byts mot d (l) r byts mot l (k) s byts mot i (g) w byts mot s (r) l byts mot r (a) ö byts mot t (n) p byts mot n (e) y byts mot a (t) j byts mot e Minst frekvent Mest frekvent Krypterad zyjjöblyptbjjyrcpwjyfjkoqupjyvölpcwlöäröpsjyåsyp Dechiffrerad kaeetoranhoeealdnseaöeåufäneavtrndsrtmltnieagian Klartext dettaärenjättelångtextsominteharnågrablanktecken Den här texten är för kort för att ge bra utslag i frekvenserna, t.ex. förekom w, x, y och z inte alls. Men man kan ana ett mönster: de fyra vanligaste bokstäverna i språket är också de fyra mest frekventa i den krypterade texten, även om de inte riktigt kommer i rätt ordning. Ökar man på textens längd blir detta ännu tydligare, men riktigt rätt blir det tyvärr inte med denna enkla dechiffrering. 14(14)

Objektorienterad programmering, Java, 5p TDBA63

Objektorienterad programmering, Java, 5p TDBA63 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)

Läs mer

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH UMEÅ UNIVERSITET Datavetenskap Marie Nordström 071207 TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH DATORSYSTEM/GRÄNSSNITT, 7.5HP. (5DV074/5DV075) Datum : 071207 Tid : 3 timmar Hjälpmedel : Allt.

Läs mer

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

PROGRAMMERING I ETT OBJEKTORIENTERAT SPRÅK (JAVA), 5P UMEÅ UNIVERSITET Inst. för Datavetenskap 050118 DELPROV 2 I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH PROGRAMMERING I ETT OBJEKTORIENTERAT SPRÅK (JAVA), 5P Datum : 050118 Tid : 9-13 Hjälpmedel : Allt. Kommunikation

Läs mer

DELPROV 1 I DATAVETENSKAP

DELPROV 1 I DATAVETENSKAP Umeå Universitet Datavetenskap Marie Nordström 070502 DELPROV 1 I DATAVETENSKAP Uppgift (poäng) 1 () 2 () 3 () 4 () 5 () 6 () Summa (xx) Inlämnad Poäng Kurs : Datum : 070502 Namn (texta) : Personnummer

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

TENTAMEN I DATAVETENSKAP

TENTAMEN I DATAVETENSKAP Umeå Universitet Datavetenskap Marie Nordström Thomas Johansson Jürgen Börstler 030124 TENTAMEN I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH PROGRAMMERING I JAVA, 5P. (TDBA63) Datum : 030124 Tid : 9-15 Hjälpmedel

Läs mer

DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA

DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA UMEÅ UNIVERSITET Inst. för Datavetenskap 060529 DELPROV2 OBJEKTORIENTERAD PROGRAMMERING I JAVA FÖR INGENJÖRER, 5P. (TDBA62) Datum : 060529 Tid : 4 timmar (9-13) Hjälpmedel : Allt. Kommunikation med andra

Läs mer

DELPROV 2 PROGRAMMERINGSMETODIK OCH

DELPROV 2 PROGRAMMERINGSMETODIK OCH UMEÅ UNIVERSITET Datavetenskap Peter Hagervall Marie Nordström 060113 DELPROV 2 PROGRAMMERINGSMETODIK OCH PROGRAMMERING I JAVA, 5P Datum : 060113 Tid : 4 timmar (9-13) Hjälpmedel : Allt. Kommunikation

Läs mer

PRAKTISKT DELPROV I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH

PRAKTISKT DELPROV I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH UMEÅ UNIVERSITET Inst. för Datavetenskap 040116 PRAKTISKT DELPROV I DATAVETENSKAP PROGRAMMERINGSMETODIK OCH PROGRAMMERING I JAVA, 5P Datum : 040116 Tid : 9-13 Hjälpmedel : Allt. Kommunikation med andra

Läs mer

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

DELPROV1. Objektorienterad programmeringsmetodik, 7.5p 5DV081, 5DV109 UMEÅ UNIVERSITET Datavetenskap 100524 DELPROV1 Objektorienterad programmeringsmetodik, 7.5p 5DV081, 5DV109 Datum : 100524 Skrivtid : 4 timmar Hjälpmedel : Allt. Kommunikation med andra personer (direkt

Läs mer

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen i Algoritmer & Datastrukturer i Java Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2010-03-16 Skrivtid: 4 timmar Kontaktperson: Nicolina Månsson Poäng / Betyg: Max 44 poäng

Läs mer

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

DELPROV2. Objektorienterad programmeringsmetodik (för ÖI), 7.5p 5DV081, 5DV090 UMEÅ UNIVERSITET Datavetenskap 080319 DELPROV2 Objektorienterad programmeringsmetodik (för ÖI), 7.5p 5DV081, 5DV090 Datum : 080319 Skrivtid : 4 timmar (start ca 8:15 alt ca 13:00) Hjälpmedel : Allt. Kommunikation

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

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. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket 1 Länkade listor Likadant som i Ada-kursen. 2 Stack MyStack MyStack

Läs mer

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Tentamen i EDAF60 29 oktober 2018 Skrivtid: 14-19 Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Skriv inte med färgpenna enda tillåtna färg är svart/blått/blyerts.

Läs mer

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Tentamen, Algoritmer och datastrukturer

Tentamen, Algoritmer och datastrukturer UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och

Läs mer

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser

Läs mer

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl Umeå Universitet Datavetenskap Anders Broberg 15-01-12 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg HT-15 Datum: 15-01-12 Tid: kl 14.00-18.00 Namn: Personnummer:

Läs mer

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

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

Läs mer

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. Tentamen Programmeringsteknik I 2012-03-14 Skrivtid: 0800-1100 Hjälpmedel: Java-bok 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

Läs mer

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt

Läs mer

Tentamen i Objektorienterad modellering och design Helsingborg

Tentamen i Objektorienterad modellering och design Helsingborg Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista

Läs mer

Föreläsning 4 Innehåll

Föreläsning 4 Innehåll Föreläsning 4 Innehåll Abstrakta datatypen lista Datastrukturen enkellänkad lista Nästlade klasser statiskt nästlade klasser inre klasser Listklasser i Java Implementera abstrakta datatyperna stack och

Läs mer

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

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte

Läs mer

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition Seminarium 4 Köer och Stackar Innehåll ADT:erna Kö och Stack Definitioner Operationer Exempel på användning Givna klasser i Java Interfacet Queue Klassen Stack Klassen LinkedList Klassen PriorityQueue

Läs mer

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr

Läs mer

Laboration 3, uppgift En klass för en räknare

Laboration 3, uppgift En klass för en räknare Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Kurskod D0010E Datum 2012-05-15 Skrivtid 5tim

Kurskod D0010E Datum 2012-05-15 Skrivtid 5tim LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, 491000, 073-820 1700 Resultatet o entliggörs senast: 2012-05-29. Tillåtna

Läs mer

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Inledande programmering med C# (1DV402) Tärningarna ska kastas Tärningarna ska kastas Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll

Läs mer

Tentamen Programmering fortsättningskurs DIT950

Tentamen Programmering fortsättningskurs DIT950 Tentamen Programmering fortsättningskurs Datum: 2015-03-17 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 G: 24-43 VG: 44-60 (max 60) Lärare:. Någon besöker ca 10.00

Läs mer

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

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

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga 203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6

Läs mer

Polymorfi. Objektorienterad och komponentbaserad programmering

Polymorfi. Objektorienterad och komponentbaserad programmering Polymorfi Objektorienterad och komponentbaserad programmering Polymorfi, mångtydighet Polymorfi innebär att en viss konstruktion kan exekveras på olika sätt Överlagring av metoder ger ett polymorft beteende

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym

Läs mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Tentamen. DD2385 Programutvecklingsteknik vt 2011 Tisdagen den 24 maj 2011 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. DD2385 Programutvecklingsteknik vt 2011 Tisdagen den 24 maj 2011 kl Hjälpmedel: penna, suddgummi, linjal Tentamen DD2385 Programutvecklingsteknik vt 2011 Tisdagen den 24 maj 2011 kl 14.00 17.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna

Läs mer

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

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

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 Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 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

Läs mer

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.

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. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,

Läs mer

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

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2002 Pedher Johansson Institutionen för datavetenskap LÖSNINGSFÖRSLAG Lösningsförslag Tentamen Programmeringsmetodik, KV: Java och OOP 17 januari 2002 Uppgift 1 (20 p) Teoriuppgifter Resultat och uppgifter

Läs mer

Föreläsning 5-6 Innehåll

Föreläsning 5-6 Innehåll Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander F9 - Polymorfism ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Polymorfism - flerformighet Vi vet vad metoden heter (signaturen) Men vi vet inte vid anropet exakt vilken metod som faktiskt

Läs mer

Föreläsning 2. Länkad lista och iterator

Föreläsning 2. Länkad lista och iterator Föreläsning 2 Länkad lista och iterator Föreläsning 2 Länkad-lista Lista implementerad med en enkellänkad lista Iterator Implementering av en Iterator Dubbellänkad lista och cirkulär lista LinkedList JCF

Läs mer

Tentamen. Lösningsförslag

Tentamen. Lösningsförslag Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som

Läs mer

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen i Algoritmer & Datastrukturer i Java Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:

Läs mer

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDA501/EDAA20 Programmering M MD W BK L LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037) Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet

Läs mer

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

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

Läs mer

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

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem). 1 (7) TENTAMEN: Objektorienterad programmering Läs detta! Uppgifterna är inte ordnade efter svårighetsgrad. Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen. Ordna bladen i uppgiftsordning.

Läs mer

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.

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 Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

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. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok 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

Läs mer

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C. Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

Läs mer

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 Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 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

Läs mer

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 Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 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

Läs mer

Föreläsning 8: Exempel och problemlösning

Föreläsning 8: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och

Läs mer

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

Tentamen i Grundläggande programmering STS, åk 1 fredag Tentamen i Grundläggande programmering STS, åk 1 fredag 2002-08-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl.

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

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

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14. Tentamen 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.00, sal D31 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

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. Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok 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

Läs mer

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

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna! Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja

Läs mer

Exempeltenta GruDat 2002/2003

Exempeltenta GruDat 2002/2003 Exempeltenta GruDat 2002/2003 Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ ger noll poäng på uppgiften. Obs: Den riktiga tentan kommer

Läs mer

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]

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] Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B2 och V1. Tentamen (1p) 12 januari 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas som en javabok.

Läs mer

Tentamen i Grundläggande Programvaruutveckling, TDA548

Tentamen i Grundläggande Programvaruutveckling, TDA548 Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2016-12-20 Tid: 08.30-12.30 Hjälpmedel: Engelskt-Valfritt språk lexikon Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista ADT Kö Grundprinciper: En kö fungerar som en kö. Man fyller på den längst bak och

Läs mer

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 Käk String titel = Chili con carne; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda(Svartpe Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för I1, K2, L1, M1, Media1 och T1. Tentamen (1p) 6 april 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas

Läs mer

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp

Läs mer

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. 1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.

Läs mer

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter Föreläsning 4 Kö Föreläsning 4 ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter ADT Kö Grundprinciper: En kö fungerar som en kö. Man

Läs mer

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

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus. Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus

Läs mer

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

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid: Tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-01-13, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: Alex

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

Läs mer