Lösningsförslag till exempeltenta 2

Storlek: px
Starta visningen från sidan:

Download "Lösningsförslag till exempeltenta 2"

Transkript

1 Lösningsförslag till exempeltenta 2 1

2 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv huvudidén, vilken den kan användas på, och tidskomplexitet. - Skriv pseudokod - Ge exempel på hur den fungerar. 2

3 2. Skriv koden för två klasser som ärver från följande klass (SuperClass2) och innehåller minst en egen metod. public class SuperClass2 { int number = 2; public int getnumber { return number; 3

4 Uppgift 2 lösningsförslag public class SubClass1 extends SuperClass2 { // constructor public SubClass1() { // method public void print(){ System.out.println("SubClass1"); 4

5 Uppgift 2 lösningsförslag public class SubClass2 extends SuperClass2 { // constructor public SubClass2() { // method public void print(){ System.out.println("SubClass2" + number); 5

6 3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Lösning: FIFO står för First In First Out struktur. FIFO innebär att den som placerats först I kön tas bort först. Operationer: enqueue() lägger till sist i strukturen dequeue() - tar bort det första elementet i strukturen och returnerar det peek() - returnerar det första elementet i strukturen utan att ta bort det isempty() - returnerar sant om strukturen är tom och falskt annars. 6

7 3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Talet 1 placeras sist i FIFO-strukturen 2 3 enqueue(1)

8 3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Talet 2 lämnar FIFO-strukturen och returneras dequeue() 3 1 8

9 3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Titta på det första element i FIFO-strukturen och returnera det peek() 9

10 3. Förklara FIFO-strukturen och vilka metoder man brukar använda på den strukturen. Ge exempel. Exempel: Testa om FIFO-strukturen är tom isempty() false 10

11 4. Vad kommer följande program att skriva ut? Förklara exempel 5 och 10 i detalj. public class TestRegularExpression { private static void tryreg(string ex, String regexp, String text) { if (text.matches(regexp)) { System.out.println(ex + " matchar."); else { System.out.println(ex + " matchar INTE."); 11

12 Uppgift 4 public static void main(string[] args) { tryreg("exempel 1", "a?b.*", "bbc"); tryreg("exempel 2", "(ac)+b", "acacb"); tryreg("exempel 3", "ab*c?", "a"); tryreg("exempel 4", "ab*c?", "ac"); tryreg("exempel 5", "cb*a", "cba"); tryreg("exempel 6", "(ba)?b*", "babbbbbb"); tryreg("exempel 7", "(ba)?b*", ""); tryreg("exempel 8", "((aca) (bb)).*c.*d?", "acad"); tryreg("exempel 9", "((aca) (bb)).*c.*d?", "bbd"); tryreg("exempel 10", "((aca) (bb)).*c.*d?", "bbacabbccd"); 12

13 Uppgift 4 Lösning tryreg("exempel 1", "a?b.*", "bbc"); Utskrift: Exempel 1 matchar. Förklaring: a? - option, a antingen finns eller inte b - b måste finnas.* - vad som helst får finnas 13

14 Uppgift 4 Lösning tryreg("exempel 2", "(ac)+b", "acacb"); Utskrift: Exempel 2 matchar. Förklaring: (ac)+ - ac måste finnas minst en gång b - strängen måste avslutas med ett b 14

15 Uppgift 4 Lösning tryreg("exempel 3", "ab*c?", "a"); tryreg("exempel 4", "ab*c?", "ac"); Utskrift: Exempel 3 matchar. Exempel 4 matchar. Förklaring: a - strängen måste börja på a b* - måste finnas 0 eller flera b c? - option, strängen kan antingen avslutas med c eller inte 15

16 Uppgift 4 Lösning tryreg("exempel 5", "cb*a", "cba"); Utskrift: Exempel 5 matchar. Förklaring: c - strängen måste börja på c b* - måste finnas 0 eller flera b a - strängen måste sluta på ett a cba börjar på c, innehåller ett b och slutar på ett a, därför matchar strängen det reguljära uttrycket cb*a 16

17 Uppgift 4 Lösning tryreg("exempel 6", "(ba)?b*", "babbbbbb"); tryreg("exempel 7", "(ba)?b*", ""); Utskrift: Exempel 6 matchar. Exempel 7 matchar. Förklaring: (ba)? - option, strängen måste antingen börja på ba eller inte b* - resten av strängen måste bestå av 0 eller flera b 17

18 Uppgift 4 Lösning tryreg("exempel 8", "((aca) (bb)).c*.*d?", "acad"); tryreg("exempel 9", "((aca) (bb)).c*.*d?", "bbd"); tryreg("exempel 10", "((aca) (bb)).c*.*d?", "bbacabbccd"); Utskrift: Exempel 8 matchar INTE. Exempel 9 matchar INTE. Exempel 10 matchar. Förklaring: ((aca) (bb)) - strängen måste börja på aca eller bb. - strängen innehåller ett tecken som är vad som helst c* - strängen innehåller 0 eller flera c.* - strängen innehåller vad som helst eller inte d? - option, strängen avslutas med d eller inte 18

19 Uppgift 4 Lösning tryreg("exempel 10", "((aca) (bb)).c*.*d?", "bbacabbccd"); Förklaring: ((aca) (bb)) - strängen måste börja på aca eller bb. - strängen innehåller ett tecken som är vad som helst c* - strängen innehåller 0 eller flera c.* - strängen innehåller vad som helst eller inte d? - option, strängen avslutas med d eller inte Strängen matchar uttrycket eftersom den kan delas upp så här: bb-a-c-abbcc-d bb uppfylls av ((aca) (bb)) a uppfylls av. c uppfylls av c* abbcc uppfylls av.* 19 d uppfylls av d?

20 5a. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ab?)*c* 5b. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (abc? ac)* 5c. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ad* b*)++ 20

21 5a. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ab?)*c* Lösning: Längd 0: Längd 1: a, c Längd 2: aa, ab, ac, cc Längd 3: aaa, aab, aba, abc, aac, acc, ccc 21

22 5b. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (abc? ac)* Lösning: Längd 0: Längd 1: finns inga Längd 2: ab, ac Längd 3: abc 22

23 5c. Vilka strängar med längd mindre än 4 matchar detta reguljära uttryck: (ad* b*)++ Lösning: Längd 0: Längd 1: a, b Längd 2: aa, ab, ad, ba, bb Längd 3: aaa, aab, aba, aad, ada, adb, bbb, bba, bab, abb, bba, baa, bad 23

24 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. 24

25 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: package: - klassen samt dess metoder och instansvariabler blir endast synliga för klasserna i samma paket. - kan användas för att samla de klasser som beskriver/utför något gemensamt, Exempel: Klasser som handlar om djur placeras i paketet animal om man skriver detta högst upp i filen: package animal; 25

26 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: För att en klass utanför paketet ska komma åt klasserna i paketet animal, måste man importera paketet genom att skriva: import animal.*; 26

27 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: protected metoden eller instansvariabeln blir tillgänglig för subklasser som finns i samma och i andra paket. protected bör ändast användas på metoder och instansvariabler som ska vara gemensamma för klasser i samma paket och klasser som ärver den klassen de finns i. 27

28 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel: I paketet school finns klassen Person som innehåller en instansvariabel deklarerad med protected. public class Person { protected name = "Kalle"; 28

29 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel: I paketet school finns klassen Person som innehåller en instansvariabel deklarerad med protected: public class Person { protected name = "Kalle"; Alla klasser i paketet school och klasser som ärver Person kan använda name direkt utan att behöver använda getter/setter. 29

30 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Lösning: private används på klasser, metoder och instansvariabler som man enbart vill ska vara synlig för klassen själv. 30

31 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Exempel Endast stacken själv ska veta att den är uppbyggd av noderna. övriga klasser ska endast behöva fundera över hur de ska tillämpa klassen Stack. public class Stack { private class Node { int ; Node ; Node(E v, Node n) { = v; = n; 31

32 6. Vad innebär package, public, protected och private? Vilken synlighet har dem? Ge exempel på hur de bör användas. Tillgänglighet i publ ic Synlighet hos medlemmar protec packa ted ge Samma klass JA JA JA JA privat e Klass i samma paket JA JA JA NEJ Subklass i annat paket JA JA NEJ NEJ Icke-subklass, annat paket JA NEJ NEJ NEJ 32

33 7. Skriv koden för en klass som implementerar gränssnittet Interface7. Metoden reverse(int[] array)vänder på arrayen array. public interface Interface7 { public void reverse(int[] array); 33

34 Uppgift 7 Lösning public class Uppgift7 implements Inteface7 { // Constructor public Uppgift7(){ // Implement the method public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; 34

35 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array:

36 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 36

37 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i 37

38 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i Array.length 1- i 38

39 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i Array.length 1- i 39

40 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 40

41 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i 41

42 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i Array.length 1- i 42

43 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: swap: 4 i Array.length 1- i 43

44 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 44

45 Uppgift 7 Lösning -Testkörning1 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array:

46 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array:

47 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 47

48 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i Array.length 1- i 48

49 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 49

50 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i Array.length 1- i 50

51 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array: i 51

52 Uppgift 7 Lösning -Testkörning2 public class Uppgift7 implements Inteface7 { public void reverse(int[] array) { for(int i = 0; i < array.length / 2; i++){ int swap = array[i]; array[i] = array[array.length -1 i]; array[array.length -1 i] = swap; array:

53 8. Skriv koden för metoden public boolean issorted() som returnerar sant om värderna i en Stack<E> finns i en stigande ordning. Metoden ska även klara av att samma värde finns i flera positioner. 53

54 Uppgift 8 public class Stack<E extends Comparable<E>> { private class Node { E ; Node ; Node(E v, Node n) { = v; = n; private Node top; 54

55 Uppgift 8 public void push(e v) { Node newtop = new Node(v,top); top = newtop; public E pop() { E v = top.; top = top.; return v; 55

56 Uppgift 8- Lösning public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; 56

57 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

58 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

59 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

60 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 60

61 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 61

62 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 62

63 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 63

64 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 64

65 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 65

66 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 66

67 Uppgift 8- Lösning Testkörning 1 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 3 currentnode: 2 67

68 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

69 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

70 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top

71 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 71

72 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 72

73 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 73

74 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 74

75 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 75

76 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 76

77 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 77

78 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 78

79 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 79

80 Uppgift 8- Lösning Testkörning 2 public boolean issorted() { if(top == null) else { Node currentnode = top; while(currentnode.!= null) { if(currentnode..compareto( currentnode..) > 0) return false; currentnode = currentnode.; top 2 currentnode: 3 80

Lösningsförslag till exempeltenta 1

Lösningsförslag till exempeltenta 1 Lösningsförslag till exempeltenta 1 1 1. Beskriv hur binärsökning fungerar. Beskriv dess pseudokod och förklara så klart som möjligt hur den fungerar. 2 Uppgift 1 - Lösning Huvudidé: - Titta på datan i

Läs mer

Datastrukturer. föreläsning 3. Stacks 1

Datastrukturer. föreläsning 3. Stacks 1 Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer

Läs mer

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

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Idag - Hashtabeller - Flerdimensionella arrayer (2D) 2 Repetition -

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

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

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

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack Stack och Kö -Implementering - Tilllämpningar ADS : STACK Det finns ett par vanligt förekommande ADT:er för samlingar av element som egentligen är specialfall av listor. En av dem är Stack Definition:

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

Laboration 13, Arrayer och objekt

Laboration 13, Arrayer och objekt Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift

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

Länkade strukturer. (del 2)

Länkade strukturer. (del 2) Länkade strukturer (del 2) Översikt Abstraktion Dataabstraktion Inkapsling Gränssnitt (Interface) Abstrakta datatyper (ADT) Programmering tillämpningar och datastrukturer 2 Abstraktion Procedurell abstraktion

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

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 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

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder

Läs mer

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )

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

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

4 13 / %.; 8 </ '':  / //&'   ' * TelefonKostnad +,-%&. #! $%  &' . > / ' 5 /' * 13/ &' static Math 1+ &'/ % 12  static ' * 1 /) %& & TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI

Läs mer

Föreläsning 11. ADT:er och datastrukturer

Föreläsning 11. ADT:er och datastrukturer Föreläsning 11 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar

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

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

Stackar, köer, iteratorer och paket

Stackar, köer, iteratorer och paket Stackar, köer, iteratorer och paket Programmering för språkteknologer 2 Sara Stymne 2013-09-18 Idag Paket Stackar och köer Array resp länkad struktur Iteratorer Javadoc Kommentarer lab 1 Bra att de flesta

Läs mer

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

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om

Läs mer

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

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

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-09-01 Skrivtid: 0900-1200 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

Föreläsning 12. Länkade listor

Föreläsning 12. Länkade listor Föreläsning 12 Länkade listor Jämför en array med en länkad lista m in n e t Array (med 5 element): + effektiv vid hämtning - ineffektiv vid insättning och borttagning Länkad lista (med 5 element): + effektiv

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

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

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer Arrayer Samling av data Datastrukturer int[] minatelnummer = new int[30]; // allokering av tillräckligt // stort minnesutrymme Element refereras genom indexering ringa = minatelnummer[25]; // indexering

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

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

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Konstruktion av klasser med klasser

Konstruktion av klasser med klasser Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut

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

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010 interface, motivation och bakgrund Antag att vi gör en generell listklass: public class List { protected static class ListNode { public

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

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Kö (ADT) En kö fungerar som en kö. Man fyller på den längst bak och tömmer den längst fram

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

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

Dugga Datastrukturer (DAT036)

Dugga Datastrukturer (DAT036) Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre

Läs mer

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

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Tentamen Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Tänk på följande Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Fyll i försättssidan

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

Föreläsning 7. Träd och binära sökträd

Föreläsning 7. Träd och binära sökträd Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Läsanvisningar och

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

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. SI-pass 4 Johan Brook och Jesper Persson 25 september 2012 1. Sant eller falskt? Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. Interfaces i Java kan innehålla privata

Läs mer

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-7, TDA540 Dag: 208-0-3, Tid: 4.00-8.00 Uppgift a) class används för en klassdeklaration som

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

Klasshierarkier. Klasser kan byggas på redan definierade klasser

Klasshierarkier. Klasser kan byggas på redan definierade klasser Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen

Läs mer

Föreläsning 9: Arv och UML

Föreläsning 9: Arv och UML TDA 545: Objektorienterad programmering Föreläsning 9: Arv och UML Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Quiz Vad betyder static? Varför skriver man get-metoder? public int getpos() { return pos;

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

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

Den som bara har en hammare tror att alla problem är spikar

Den som bara har en hammare tror att alla problem är spikar Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken

Läs mer

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

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1. Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge

Läs mer

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

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid: Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:

Läs mer

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

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 Programmeringsteknik II 2017-10-23 Skrivtid: 14:00 19:00 Inledning Skrivningen innehåller ett antal bilagor: Bilagan listsandtrees innehåller fyra klasser: Klassen List med några grundläggande

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

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

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

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande: Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp

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

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper.

Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10. Skriv bara på framsidan av varje papper. Tentamen Programmeringsteknik II och NV2 (alla varianter) 2008-12-10 Skrivtid: 0800-1300 Inga hjälpmedel. Tänk på följande Maximal poäng är 40. För betygen 3 krävs 18 poäng. För betygen 4, 5 kommer något

Läs mer

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration

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

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

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp. Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar

Läs mer

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

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,

Läs mer

Lösningsförslag till tentamen 150317

Lösningsförslag till tentamen 150317 Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)

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

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

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,

Läs mer

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning. Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer

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

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

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Lösningsförslag, tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och

Läs mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder

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

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

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut

Läs mer

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

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Lösningar för tenta 2 DAT043,

Lösningar för tenta 2 DAT043, Lösningar för tenta 2 DAT043, 2018-06-08. Uppgift 1 public class Car{ private String model; private String year; private double price; public Car(String model, String year, double price){ this.model =

Läs mer

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden December 1, 2013 1 Innehåll OO-programmering fortsättning Skapa

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 / 2007-03-13 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:

Läs mer

Föreläsning 7. Träd och binära sökträd

Föreläsning 7. Träd och binära sökträd Föreläsning 7 Träd och binära sökträd Föreläsning 7 Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning Det är extra mycket

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

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

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck Betrakta följande uttryck a +(b + c) d + e (f + g h) Parsing med Recursive Descent, Avbildningsklasser Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 22 november 2010 Beräkning med regler: multiplikation

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

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 110317 a) Sant. b) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser. c) Falskt. TCP är ett protokoll på transportlagret. d) Falskt. Binärsökning

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

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och penna. Behandla

Läs mer

13 Prioritetsköer, heapar

13 Prioritetsköer, heapar Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning

Läs mer

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

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper. Tentamen Programmeringsteknik II 2016-05-30 Skrivtid: 1400 1900 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

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 a) Falskt! Bitmönstret är 10010111 b) Falskt! Memory Manager handhar Lösningsförslag till tentamen 170609 c) Falskt. En trojansk häst är ett program i förklädnad. Det är således program som på

Läs mer

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

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om? Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket

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 2015-05-26 Skrivtid: 0800 1300 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