Observera : Lämna in svaren på frågorna på detta blad genom att lämna in detta blad!

Relevanta dokument
Inga hjälpmedel tillåtna.

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

INDA Introduktion till Datalogi Tentamen Mars 09

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 PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Objektorienterad programmering i Java

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

Programmering för språkteknologer II, HT2014. Rum

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

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

Laboration 13, Arrayer och objekt

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

DAT043 Objektorienterad Programmering

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

Malmö högskola 2008/2009 CTS

Objektorienterad programmering med Java, Generics

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

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

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.

Skriv i Java två klassmetoder, en rekursiv och en iterativ, som beräknar fib(i).

TENTAMEN OOP

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

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

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

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 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.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren att du har förstått dessa även om detaljer kan vara felaktiga.

TENTAMEN OOP

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

TENTAMEN OOP

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

Laboration A Objektsamlingar

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

Kort om klasser och objekt En introduktion till GUI-programmering i Java

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

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Del A (obligatorisk för alla)

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Föreläsning jan 15 v3, jan 22 v4. GT Chapter 6, GT Chapter 7 Hemuppgifter redovisning v4, v5.

Föreläsning 4 Innehåll

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

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

Konstruktion av klasser med klasser

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

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) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

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

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 II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Programmering för språkteknologer II, HT2011. Rum

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 3. Stack

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

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

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Lösningsförslag till exempeltenta 2

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

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

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

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Tentamen OOP

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

Föreläsningar nov 5 v 45. Objektorientering och arv.

Del A (obligatorisk för alla)

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

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

Föreläsning REPETITION & EXTENTA

Arrayer. results

Föreläsning 2, vecka 8: Repetition

ID1004 Laboration 4, November 2012

Laboration 1 - Grunderna för OOP i Java

Tentamen. Lösningsförslag

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Föreläsning 9: Arv och UML

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

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

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

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

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

Klasshierarkier - repetition

DAT043 - Föreläsning 7

Transkript:

KTH Nada Leif Kusoffsky INDA Introduktion till Datalogi Tentamen 2002 augusti 22 Observera: Skriv hela tentan. Man kan inte längre tillgodoräkna sig resultat från kontrollskrivningar, ej heller bonuspoäng från laborationerna! Inga hjälpmedel tillåtna. Lycka till!! Observera : Lämna in svaren på frågorna på detta blad genom att lämna in detta blad! 1. Instansmetoder och instansvariabler deklareras genom att (2p) a) alltid skriva void b) utelämna ordet static c) skriva static a b c 2. För instansmetoder gäller att de (2p) a) kan anropas enbart om det finns objekt av klassen a b c b) kan anropas med <klassnamn>.<metodnamn> c) kan anropas enbart om det inte finns objekt av klassen 3. Det är möjligt att programmera på traditionellt imperativt sätt, i stort sett icke-objekt-inriktat, i Java genom a) att bara använda instansvariabler (2p) b) att aldrig använda referensvariabler a b c c) att bara använda klassvariabler och klassmetoder 4. En abstrakt java klass a) kan instansieras b) kan ej instansieras c) kan instansieras om final a b c 5. En java-applikation startar alltid med en metod main som (2p) a) är en instansmetod b) saknar parametrar c) har parameter av typen String [] 6. För instansvariabler gäller att de (2p) a) är odefinerade om man ej tilldelar dem vid deklarationen a b c b) är odefinerade om man ej tilldelar dem i konstruktorn c) finns i en uppsättning per skapat objekt 7. Uttrycket o1 == o2 blir true om o1 och o2 refererar a) objekt som är lika b) samma objekt c) olika arrayer med identiska element a b c (2p) 8. Satsen o1 = o2 leder till att referens-variablerna o1 och o2 refererar a) två olika objekt som är likadana b) samma objekt c) "kloning" a b c (2p) 9. En Java-klass kan (2p) a) direkt ärva en enda annan klass a b c b) ej implementera ett interface om klassen ärver en annan klass c) direkt ärva flera klasser Observera : Lämna in svaren på frågorna på detta blad genom att lämna in detta blad!

Kopia på första bladet. 1. Instansmetoder och instansvariabler deklareras genom att (2p) a) alltid skriva void b) utelämna ordet static c) skriva static a b c 2. För instansmetoder gäller att de (2p) a) kan anropas enbart om det finns objekt av klassen a b c b) kan anropas med <klassnamn>.<metodnamn> c) kan anropas enbart om det inte finns objekt av klassen 3. Det är möjligt att programmera på traditionellt imperativt sätt, i stort sett icke-objekt-inriktat, i Java genom a) att bara använda instansvariabler (2p) b) att aldrig använda referensvariabler a b c c) att bara använda klassvariabler och klassmetoder 4. En abstrakt java klass a) kan instansieras b) kan ej instansieras c) kan instansieras om final a b c 5. En java-applikation startar alltid med en metod main som (2p) a) är en instansmetod b) saknar parametrar c) har parameter av typen String [] 6. För instansvariabler gäller att de (2p) a) är odefinerade om man ej tilldelar dem vid deklarationen a b c b) är odefinerade om man ej tilldelar dem i konstruktorn c) finns i en uppsättning per skapat objekt 7. Uttrycket o1 == o2 blir true om o1 och o2 refererar a) objekt som är lika b) samma objekt c) olika arrayer med identiska element a b c (2p) 8. Satsen o1 = o2 leder till att referens-variablerna o1 och o2 refererar a) två olika objekt som är likadana b) samma objekt c) "kloning" a b c (2p) 9. En Java-klass kan (2p) a) direkt ärva en enda annan klass a b c b) ej implementera ett interface om klassen ärver en annan klass c) direkt ärva flera klasser

10. a) Skriv en iterativ klassmetod (dvs en metod med en snurra, "loop", och inget rekursivt anrop) (8p)..... elemiter(int e, int n, int [] arr) {... som returnerar om det finns ett elementet lika med e i arr från och med elementet med index 0 till och med elementet med index n. Om ett felaktigt n (n <0, n> sista element i arr) ges skall metoden returnera false. b) Skriv motsvararande rekursiva metod..... maxiter(int e, int n, int [] arr) {... Tips: Ett elementet lika med e finns bland elementen med index i, 0<= i <= n, n >0 om elementet arr[n]==e eller om ett elementet lika med e finns bland elementen med index 0<= j <= n-1. (8p) c) Skriv ett huvudprogram för att testa metoderna i a) och b). Förslag till körresultat med inmatning kursiverat: (Programmet java Elem kollar om första efterföljande argument, i exemplen nedan 3 som alltså blir parametern e, finns bland de efterföljande argumenten som alltså blir parametern arr) (4p)...:~/undervisning/inda01/sec>java Elem 3 4 5 14 3 12 Is the first argument 3 an element in other arguments? (iteration) = true Is the first argument 3 an element in other arguments? (recursion) = true...:~/undervisning/inda01/sec>java Elem 3 4 5 14 3 Is the first argument 3 an element in other arguments? (iteration) = true Is the first argument 3 an element in other arguments? (recursion) = true...:~/undervisning/inda01/sec>java Elem 3 4 Is the first argument 3 an element in other arguments? (iteration) = false Is the first argument 3 an element in other arguments? (recursion) = false...:~/undervisning/inda01/sec>java Elem 3 Is the first argument 3 an element in other arguments? (iteration) = false Is the first argument 3 an element in other arguments? (recursion) = false...:~/undervisning/inda01/sec>java Elem 3 3 14 Is the first argument 3 an element in other arguments? (iteration) = true Is the first argument 3 an element in other arguments? (recursion) = true...:~/undervisning/inda01/sec>java Elem 3 3 Is the first argument 3 an element in other arguments? (iteration) = true Is the first argument 3 an element in other arguments? (recursion) = true

11 a). Alla länder har ett namn och ett namn på sin valuta. Vissa länder är medlemmar i EU och blev medlemmar ett visst år. Vissa av EU-länderna har en gemensam valuta med namnet "euro". Vissa länder (t ex Sverige som är ett EU-land, Frankrike som är ett Euro-EU-Land och Norge som bara är ett Land, men inte Storbrittanien som är ett EU-land) är med i Shengen-samarbetet. Dessa länder har tillgång till ett polisregister register av typen Map som dessa staters polismyndigheter kan söka i. Modellera i Java med sex klasser och ett gränsnitt denna situation, som den dessutom beskrivs med nedanstående UML-liknade klassdiagram. Samtliga klasser skall dessutom ha lämplig konstruktor som ger instanvariablerna lämpliga värden. 9p) Land - String namn //landets namn - String valuta //valutans namn Shengen public Object searchfor(string iperson) EULand - int inträdesår ShengenLand - Map register EuroEULand ShengenEULand - Map register ShengenEuroEULand - Map register Tips: Implementeringen av metoden searchfor(string iperson) görs med metoden get i Map: public Object searchfor(string iperson){ return register.get(iperson); Metoden deklareras alltså i gränsnittet Shengen,och skall implementeras av "Shengen-klasserna". Konstruktorn för Shengenländer har en parameter för att instansiera registret av typen Map. Euroländer får valutanamnet "euro" automatiskt utan medverkan av konstruktorerna för dessa sorts länder.

b). Kan man i Java förenkla problemet i 1 a) genom att använda multipelt arv? 1p) Mer givet för uppgift 12 på nästa sida. c). Vilka av namnen Land, EULand, EuroEULand, Shengen, ShengenLand, ShengenEULand, ShengenEuroEULand och Map kan användas som typnamn? 1p) d). Skulle man kunna ha en Vector där elementen skull kunna vara instanser av vilken som helst av de sex klasserna? Hur deklarerar man i så fall en sådan Vector, och hur tillfogas i så fall några länder, t ex Sverige och Frankrike och Norge till vektorn? 1p) e). Förse de av de sex klasserna där det behövs med en metod String tostring() som returnerar landets namn, namnet på valutan och i förekommande fall inträdesår i EU samt om landet är ett Shengenland. 3p) f). Skriv en metod void printinfo(vector länder) som med en slinga (snurra, loop) skriver ut information om alla länder i vectornländer med hjälp av tostring() i uppgift e. 3p) g) Förklara vad som menas med dynamisk bindning. 2p) 12 Implementera en prioritetskö med en dubbellänkad lista i en klass DLPriorityQueue (16p) som skall implementera gränsnittet PriorityQueue. Listan innehåller objekt av klassen DLItemNode. Listan hålls sorterad med avsende på nycklarna, (key), i DLItemNode.. För att jämföra nycklar används ett objekt som implementar gränsnittet java.util.comparator. Högsta prioritet = minsta nyckel. Du skall skriva hela klassen (bl a det som behövs för att skapa en lämplig datastruktur) med undantag för att av metoderna i gränssnittet PriorityQueue behöver du bara behöver implementera metoden public void insertitem(object k, Object e). Givet: public interface PriorityQueue { // Högsta prioritet = minsta nyckel public int size() ; // Antalet "items" i prioritetskön public boolean isempty(); // Är prioritetskön tom? public Object minelement() throws PriorityQueueEmptyException ; // Elemenet- delen av det "item" som har högst prioritet public Object minkey() throws PriorityQueueEmptyException; // Nyckeln i det "item" som har högst prioritet public void insertitem(object k, Object e); // Tillför nytt "item" public Object removemin() throws PriorityQueueEmptyException ; // Avlägsna det "item" som har högst prioritet

public class DLItemNode implements Item { private Object element; private Object key; private DLItemNode left; private DLItemNode right; /** constructor with parameters */ public DLItemNode(Object k, Object e) { this(k, e, null, null); /** constructor with parameters */ public DLItemNode(Object k, Object e,dlitemnode ileft, DLItemNode iright ){ setelement(e);setkey(k); left = ileft; right = iright; public Object element() { return element; public void setelement(object o) { element=o; public Object key() { return key; public void setkey(object o) { key=o; public DLItemNode left() {return left; public void setleft(dlitemnode ileft) {left = ileft; public DLItemNode right() {return right; public void setright(dlitemnode iright) {right = iright; 13 Vilken komplexitet har körtiden för opertionen findelement när man gör en binärsökning i en "look-up-table"? Enligt bokens definition finns en "look-up-table" i vad boken betecknar som en vektor. Motivera ditt svar. (16p) 14 Visa hur man med "in-place quick sort" gör en lexiografisk sortering av strängar med två tecken, alla tecken c i intervallet a <= c <= z. (16p) Svara genom att visa och kommentera hur dessa strängar sorteras: zb pe mm ng Är det en bra sorteringsmetod?

Förslag till svar tenatamen i 2D1340 Introduktion till datalogi 2002 augusti 22. 1. Instansmetoder och instansvariabler deklareras genom att (2p) a) alltid skriva void b) utelämna ordet static c) skriva static a bx c 2. För instansmetoder gäller att de (2p) a) kan anropas enbart om det finns objekt av klassen a x b c b) kan anropas med <klassnamn>.<metodnamn> c) kan anropas enbart om det inte finns objekt av klassen 3. Det är möjligt att programmera på traditionellt imperativt sätt, i stort sett icke-objekt-inriktat, i Java genom a) att bara använda instansvariabler (2p) b) att aldrig använda referensvariabler a b cx c) att bara använda klassvariabler och klassmetoder 4. En abstrakt java klass a) kan instansieras b) kan ej instansieras c) kan instansieras om final a bx c 5. En java-applikation startar alltid med en metod main som (2p) a) är static b) saknar parametrar c) är fördefinierad a x b c 6. För instansvariabler gäller att de (2p) a) är odefinerade om man ej tilldelar dem vid deklarationen a b cx b) är odefinerade om man ej tilldelar dem i konstruktorn c) finns i en uppsättning per skapat objekt 7. Uttrycket o1 == o2 blir true om o1 och o2 refererar a) objekt som är lika b) samma objekt c) olika arrayer med identiska element a bx c 8. Satsen o1 = o2 leder till att o1 och o2 refererar a) två olika objekt som är likadana b) samma objekt c) "kloning" a bx c (2p) 9. En Java-klass kan (2p) a) direkt ärva en enda annan klass a x b c b) ej implementera ett interface om klassen ärver en annan klass c) direkt ärva flera klasser 10 public class Elem { public static boolean elemiter(int e, int n, int [] arr) { -- a if (n<0 arr.length - 1 < n) { throw new RuntimeException(" n < 0 not allowed or n too big"); else { boolean result = false; int i = 0; while ((i <= n) &&!result ) { result = (arr[i] == e); i = i+1; (2p)

return result; public static boolean elemrec(int e, int n, int [] arr) { -- b if (n<0 arr.length - 1 < n) { throw new RuntimeException(" n < 0 not allowed or n too big"); else if (n == 0) { return (arr[n] == e); else { return (arr[n] == e) elemrec(e, n-1, arr); public static void main(string [] arg) { int e = Integer.parseInt(arg[0]); int [] myarr = new int [arg.length-1]; for (int i = 1; i < arg.length; i = i+1) { myarr[i-1] = Integer.parseInt(arg[i]); System.out.println("Is the first argument " + e + " an element in other arguments? (iteration) = " + elemiter(e, myarr.length-1, myarr)); -- c System.out.println("Is the first argument " + e + " an element in other arguments? (recursion) = " + elemrec(e, myarr.length-1, myarr)); 11 public class Land { protected String valuta = ""; protected String namn = ""; //11a, 11e public Land(String inamn, String ivaluta) { namn = inamn; valuta = ivaluta; public String tostring() { return (namn + ": valuta " + valuta);

public interface Shengen { public Object searchfor(string iperson); import java.util.*; public class ShengenLand extends Land implements Shengen { private Map register; public ShengenLand(String inamn, String ivaluta, Map iregister) { super(inamn, ivaluta); register = iregister; public Object searchfor(string iperson){ return register.get(iperson); public String tostring() { return super.tostring() + " i Shengen"; public class EULand extends Land { protected int inträdesår; public EULand(String inamn, String ivaluta, int iinträdesår) { super(inamn, ivaluta); inträdesår = iinträdesår; public String tostring() { return super.tostring() + " i Eu år " + inträdesår; import java.util.*; public class ShengenEULand extends EULand implements Shengen { private Map register; public ShengenEULand(String inamn, String ivaluta,

int iinträdesår, Map iregister) { super(inamn, ivaluta, iinträdesår); register = iregister; public Object searchfor(string iperson){ return register.get(iperson); public String tostring() { return super.tostring() + " i Shengen"; public class EuroEULand extends EULand { public EuroEULand(String inamn, int iinträdesår) { super(inamn, "euro", iinträdesår); import java.util.*; public class ShengenEuroEULand extends EuroEULand { private Map register; public ShengenEuroEULand(String inamn, int iordförandeår, Map iregister) { super(inamn, iordförandeår); register = iregister; public Object searchfor(string iperson){ return register.get(iperson); public String tostring() { return super.tostring() + " i Shengen"; Multipelt arv är inte tillåtet i Java. Det vore bekvämt här Alla // 11b // 11c

import java.util.*; // public class TestLander { public static void main(string [] args) { Vector lv = new Vector(); //11d Map m = new Hashtable(); lv.add(new ShengenEULand("Sverige", "krona", 1995, m)); lv.add(new ShengenEuroEULand("Frankrike", 1955, m)); lv.add(new EULand("Storbrittanien","pund", 1965)); lv.add(new Land("Norge","krona")); printinfo(lv); public static void printinfo(vector v) { for(int i = 0; i < v.size(); i = i+1) { System.out.println(v.elementAt(i)); // 11f Beroende på objektets typ används korrekt version av en metod, t ex tostring() ovan. Detta fungerar eftersom metodrna hittas i minnet via objekten, som innehåller referenser till adekvat version //11g 12 import java.util.*; public class DLPriorityQueue implements PriorityQueue { private Comparator comp; private int size = 0; private DLItemNode sentinel; public DLPriorityQueue(Comparator c) { if (c == null) { throw new IllegalArgumentException("Null comparator passed"); else { comp = c; sentinel = new DLItemNode(null, null,null, null); sentinel.setleft(sentinel); sentinel.setright(sentinel); public void insertitem(object k, Object e) { sentinel.setkey(k);

DLItemNode walker = sentinel.right(); while (comp.compare(k, walker.key()) > 0) { walker = walker.right(); DLItemNode ny = new DLItemNode(k, e, walker.left(), walker); (walker.left()).setright(ny); walker.setleft(ny); size = size + 1; 13 Se boken sid 358, sid 359. 14 zb pe mm ng pivopt last element is pivot mm pe zb ng pivot scan from left and right, swap first small to with first bigt. Herf zb > ng, mm<ng => swap mm and zb mm ng zb pe small inplace --unsort big-- swap pivot in place mm ng zb pe sorted inplace pivot sort small nad big. Here small is only one elemnt => already sorted sort big, i. e. zb pe the same way mm ng pe zb sorted inplace inplace big mm ng pe zb sorted inplace inplace sorted Here the new big sequence is only one elemnt => already sorted