Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer"

Transkript

1 Föreläsning 1-12 Innehåll Vektorer Registrering (räkna element av olika slag) Sökning Matriser Klasserna String och StringBuilder Repetition inför delmålskontroll 2 Undervisningsmoment: föreläsning 1-12 övning 4 laboration 7-8 Avsnitt i läroboken: , 8.1, 11 EDAA2 (F1-12 programmering) HT / 59 Datastrukturer En datastruktur kan innehålla många element. har ett namn, men man kan även komma åt enskilda element. lista träd graf I kursen används listor i form av vektorer klassen ArrayList EDAA2 (F1-12 programmering) HT / 59 Program med vektor Exempel public class MysteryProgram { public static void main(string[] args) { System.out.println("Skriv ett n-värde och " + "därefter n heltal:"); Scanner scan = new Scanner(System.in); int n = scan.nextint(); int[] v = new int[n]; for (int i = ; i < v.length; i++) { v[i] = scan.nextint(); for (int i = v.length - 1; i >= ; i--) { System.out.println(v[i]); Vad gör programmet? EDAA2 (F1-12 programmering) HT / 59 Deklarera vektorer Vektorer deklareras precis som andra variabler med datatyp namn elementens typ int[] v; Markerar att det är en vektor och inte en vanlig int-variabel vektorns namn Vektorer är objekt i Java. v är alltså en referensvariabel. Observera att själva vektorn inte är skapad ännu. EDAA2 (F1-12 programmering) HT / 59 v

2 Skapa vektorer Vektorer är objekt vektorns namn elementens typ v = new int[5]; Antal element måste anges. Elementen får automatiskt startvärden. antal element v [] [1] [2] [3] [4] Oftast deklarerar och skapar man vektorn på samma gång: int[] v = new int[5]; v [] [1] [2] [3] [4] Vektorer är objekt i Java. v refererar till vektorn (vilket framgår av bilden ovan). Men ofta ritar man en enklare bild av vektorn: v EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Använda vektorelement Ta reda på vektorns längd vektorns namn index Använd length för att ta reda antal element i vektorn. v[] = 42; Ett vektorelement används som en vanlig variabel. Det är viktigt att indexet håller sig inom gränserna [, antal element 1] for (int i = ; i < v.length; i++) { v[i] = scan.nextint(); Tänk på att elementen numreras från och uppåt. EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

3 Övning Skapa vektor Deklarera och skapa en vektor numbers med plats för 5 stycken element av typen double. Tilldela första elementet värdet 7.2. numbers [] [1] [2] [3] [4] Deklarera och skapa en vektor exist med plats för 4 stycken element av typen boolean. Tilldela tredje elementet värdet true. exist [] [1] [2] [3] false false true false Vektorer är objekt Referenstilldelning Vad händer i detta exempel? Hur många vektorer skapas? Vad refererar b till? Komplettera bilden. int[] a = new int[3]; a[] = 7; a[1] = 8; a[2] = 9; int[] b = a; a [] 7 [1] 8 [2] 9 EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Kopiera vektorer Exempel Kopiera a, dvs. skapa en ny vektor med samma innehåll som a. int[] a = new int[3]; a[] = 7; a[1] = 8; a[2] = 9; int[] b = new int[a.length]; for (int i = ; i < a.length; i++) { b[i] = a[i]; Genvägar Överkurs, men praktiskt // Skapa en vektor när man vet innehållet: int[] a = {7, 8, 9; // Kopiera en vektor till en ny vektor med längden a.length: int[] b = Arrays.copyOf(a, a.length); // Metoden Arrays.toString returnerar en sträng med vektorns // innehåll. Skriv ut innehållet i vektorn: System.out.println(Arrays.toString(b)); a [] 7 [1] 8 [2] 9 b [] 7 [1] 8 [2] 9 a [] 7 [1] 8 [2] 9 b [] 7 [1] 8 [2] 9 EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

4 Lagra objekt i vektorer Lagra objekt i vektorer forts Vektorn vertices med plats för tre Point-objekt: Point[] vertices = new Point[3]; vertices[] = new Point(1,15); vertices[1] = new Point(5,1); vertices[2] = new Point(9,12); vertices [] [1] [2] null null null vertices Varje vektorelement är en referensvariabel av typen Point. Observera att vi inte har skapat några punktobjekt ännu, bara en vektor med plats för punkter. x y 1 15 x y 5 1 x y 9 12 EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Klassen Triangle Huvudprogram som använder klassen Triangle public class Triangle { private Point[] vertices; // triangelns hörnpunkter /** Skapar en triangel med hörnpunkterna x1,y1 x2,y2 x3,y3. */ public Triangle(int x1,int y1,int x2,int y2,int x3,int y3) { vertices = new Point[3]; vertices[] = new Point(x1,y1); vertices[1] = new Point(x2,y2); vertices[2] = new Point(x3,y3); /** Ritar triangeln i fönstret w. */ public void draw(simplewindow w) { w.moveto(vertices[].getx(), vertices[].gety()); for (int i = 1; i < vertices.length; i++) { w.lineto(vertices[i].getx(), vertices[i].gety()); w.lineto(vertices[].getx(), vertices[].gety()); EDAA2 (F1-12 programmering) HT / 59 public class TriangleExample { public static void main(string[] args) { Triangle t = new Triangle(1, 15, 5, 1, 9, 12); SimpleWindow w = new SimpleWindow(2, 2, "Triangel"); t.draw(w); EDAA2 (F1-12 programmering) HT / 59

5 Registrering Exempel på användning av heltalsvektor Uppgift: Räkna antal element av olika slag. Lösning: Använd en vektor av typ int[] för att lagra de olika antalen. Räkna mynt.vi behöver en låda för enkronor, en för femkronor och en för tiokronor: int[] nbrcoins = new int[3]; enkronor femkronor tiokronor EDAA2 (F1-12 programmering) HT / 59 räkna antal 6:or public class DieTest { public static void main(string[] args) { Die d = new Die(); Scanner scan = new Scanner(System.in); System.out.println("Antal tärningskast: "); int nbrrolls = scan.nextint(); int nbr6 = ; for (int i = ; i < nbrrolls; i++) { d.roll(); if (d.getresult() == 6) { nbr6++; System.out.println("Det blev en 6:a i " + (double) nbr6/nbrrolls * 1 + " % av fallen"); Ändra i programmet så att även antal 1:or, antal 2:or,... räknas. EDAA2 (F1-12 programmering) HT / 59 räkna antal olika tärningskast registrera poäng Räkna antal 1:or, antal 2:or... int[]res = new int[6]; for (int i = ; i < nbrrolls; i++) { d.roll(); res[d.getresult() - 1]++; res antal 1:or antal 2:or antal 6:or Antag att ett antal studenter har skrivit ett prov. På provet kan man ha max 5 poäng. Vi ska räkna antal studenter som har, 1,..., 5 poäng. antal studenter som har -9, 1-19, 2-29, 3-39, 4-5 poäng. Vi koncentrerar oss här bara på registreringen och och skriver ett litet huvudprogram där vi antar att antal studenter är 1. Poängen slumpar vi fram. (De blir rektangelfördelade vilket är orealistiskt.) I läroboken finns det ett större exempel med klasser för studenter och prov. EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

6 registrera poäng, 1,..., 5 public class RegExample { public static void main(string[] args) { Random rand = new Random(); int[] nbrs = new int[5]; // antal med poäng, // antal med 1 poäng... for (int i = ; i < 1; i++) { int p = rand.nextint(51); // slumpa poäng nbrs[p]++; // notera poängen System.out.println(Arrays.toString(nbrs)); nbrs antal med poäng 1 antal med 1 poäng 2 antal med 2 poäng... 5 antal med 5 poäng registrera poäng -9, 1-19, 2-29, 3-39, 4-5 Vi har 5 intervall och behöver en vektor med 5 platser: int[] nbrs = new int[5]; Översättning från poängantal till index: int index = p / 1; Poängantalet 5 måste särbehandlas. nbrs -9 poäng 1-19 poäng poäng poäng poäng EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 registrera poäng -9, 1-19, 2-29, 3-39, 4-5, forts Registrering Kommentar public class RegExampleInterval { public static void main(string[] args) { Random rand = new Random(); int[] nbrs = new int[4]; // antal med -1 poäng, // antal med 1-19 poäng... for (int i = ; i < 1; i++) { int p = rand.nextint(51); // slumpa poäng int index = p / 1; // Ex: 37 poäng ger index 3 if(index == 5){ //särbehandla 5 poäng index = 4; nbrs[index]++; System.out.println(Arrays.toString(nbrs)); Passar det alltid att använda en heltalsvektor för att räkna antal av olika slags element? Ideexempelvianvänthardetvaritlättattöversättafrån slagav element till index i resultatsvektorn. I andra fall är det svårare. Antag att vi ska räkna antal förekomster av olika ord i en text. I så fall är det bättre att vi lagrar ordet tillsammans med antal förekomster i någon annan datastruktur. Det finns färdiga klasser i Java som kan användas i sådana fall (t.ex. HashMap) Detta behandlas i en senare kurs. EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

7 Linjärsökning Mönster Uppgift: Sök upp givet element i en följd av element. Lösning: Gå igenom elementen i tur och ordning och kontrollera för varje element om det är det sökta. Avbryt om det sökta elementet påträffas. EDAA2 (F1-12 programmering) HT / 59 Diskutera public static int indexof(int[] v, int nbr) { for (int i = ; i < v.length; i++) { if (v[i] == nbr) { return i; else { return -1; Varför fungerar inte det här? EDAA2 (F1-12 programmering) HT / 59 Linjärsökning Med for-sats Algoritm: for (int i = ; i < "antal element"; i++) { if ("elementet på plats i är det vi söker") { avbryt /** Sök efter talet nbr i vektorn v. Om nbr finns returneras platsen för nbr, annars -1 */ public static int indexof(int[] v, int nbr) { for (int i = ; i < v.length; i++) { if (v[i] == nbr) { return i; return -1; EDAA2 (F1-12 programmering) HT / 59 Linjärsökning Med while-sats Algoritm: i = "platsen för det första elementet" while ("fler element kvar att söka igenom" && "elementet på plats i inte är det vi söker") i = platsen för nästa element public static int indexof(int[] v, int nbr) { int i = ; while (i < v.length && v[i]!= nbr) { i++; if (i < v.length) { return i; else { return -1; EDAA2 (F1-12 programmering) HT / 59

8 Diskutera Ordningen mellan delvillkoren är viktig. Varför måste jämförelsen i < v.length göras först? int i = ; while (i < v.length && v[i]!= nbr) { i++; Varför kan man inte använda villkoret v[i] == nbr för att avgöra om man funnit talet nbr eller ej? if (i < v.length) { return i else { return -1; Linjärsökning Kommentar I exemplet på föregående sida förutsäter vi att vektorns alla platser används och ska sökas igenom. Vi har alltså v.length element att söka igenom: while (i < v.length && v[i]!= nbr) I motsvarande exempel i läroboken (avsnitt 8.8) har man en vektor där de bara de n första platserna i vektorn utnyttjas: while (i < n && v[i]!= nbr) { EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Klassen Arrays I Java finns det en klass Arrays som innehåller en hel del metoder bland annat för att söka i vektorer och sortera. Antag att vi har en vektor v av typen int[] med sorterade heltal. Då kan vi söka efter platsen för talet 42 på följande sätt: int index = Arrays.binarySearch(v, 42); Vektorn kan sorteras genom följande anrop: Arrays.sort(v); Att använda denna klass ingår ej i kursen, men det kan vara bra att veta att det finns en hel del färdigt om du fortsätter skriva program efter kursens slut. Vill du veta mera så se vidare i Javas dokumentation. EDAA2 (F1-12 programmering) HT / 59 polygon Vektorer med godtyckligt antal element Antag att vi vill hantera polygoner med ett godtyckligt antal hörnpunkter. Vi måste skapa en tillräckligt stor vektor för punkterna. Det behövs också en variabel som håller reda på hur många punkter vi satt in i vektorn: Point[] vertices = new Point[8]; int n = ; vertices null null null null null n null null null EDAA2 (F1-12 programmering) HT / 59

9 polygon forts Polygon med fyra hörnpunkter vertices null null null null Sätta in en ny punkt Insättning av en ny punkt efter de andra punkterna i polygonen: vertices[n] = new Point(2, 4); n++; vertices null null null x 5 x 7 x 35 x 32 y 5 y 3 y 35 y 2 x 5 x 7 x 35 x 32 x 2 y 5 y 3 y 35 y 2 y 4 n 4 n 5 EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Klassen Polygon Ta bort en punkt public class Polygon { private Point[] vertices; private int n; // polygonens hörnpunkter // antal hörnpunkter Borttagning av punkten på plats pos i vektorn vertices: Täpp till hålet i vektorn genom att flytta flytta alla element efter pos ett steg till vänster. Uppdatera n eftersom antal punkter minskat med 1. /** Skapar en polygon med max 8 hörnpunkter. */ public Polygon() { vertices = new Point[8]; n = ; /** Sätter in en ny punkt med koordinaterna x, y. */ public void addvertex(int x, int y) { vertices[n] = new Point(x, y); n++; public void removevertex(int pos) { for (int i = pos; i < n - 1; i++) { vertices[pos] = vertices[pos + 1]; vertices[n - 1] = null; n--; EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

10 Före borttagning av punkten Efter borttagning av punkten vertices null null null vertices null null null null x 5 x 7 x 35 x 32 x 2 y 5 y 3 y 35 y 2 y 4 x 5 x 35 x 32 x 2 y 5 y 35 y 2 y 4 n pos 5 1 n pos 4 1 EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Passar en vektor för detta? Linjärsökning Klassen Polygon I exemplet på föregående bilder måste vi gissa hur stor vektor vi behöver. Vad händer om vi vill sätta in fler än 8 punkter? Då måste vi skapa en ny större vektor. För problem där antal element varierar är det enklare att använda den färdiga klassen ArrayList (behandlas senare i kursen). Ett ArrayList-objekt använder internt en vektor och har färdiga metoder för att sätta in element i listan, ta bort element etc. Lägg till en metod som undersöker om punkten x, y ingår bland polygonens hörnpunkter. public boolean hasvertex(int x, int y) { for (int i = ; i < n; i++) { if (vertices[i].getx() == x && vertices[i].gety() == y) { return true; return false; EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

11 Håll koll på typerna Matriser Kontrollera att typerna stämmer vid tilldelningar och jämförelser för att undvika fel. namn typ index i int vektorn med punkter vertices Point[] en punkt vertices[i] Point punktens x-koordinat vertices[i].getx() int punktens y-koordinat vertices[i].gety() int rad rad 1 rad 2 kolonn kolonn kolonn kolonn kolonn EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Deklarera och skapa matriser Använda matriser Att använda ett matriselement: elementens typ radindex kolonnindex int[][] m = new int [3][5]; m[2][] = ; antal rader antal kolonner Man kan ta reda på antal rader: m.length och antal kolonner på raden i: m[i].length EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

12 Övning Matris Exempel Matris Deklarera och skapa en matris som representerar ett schackbräde med 8 x 8 rutor. På rutorna ska man kunna placera schackpjäser som beskrivs av en klass ChessPiece. Beräkna och skriv ut radsummorna i en 3 x 5-matris. för varje rad för varje element på raden behandla elementet for (int i = ; i < m.length ; i++) { int sum = ; for (int k = ; k < m[i].length; k++) { sum = sum + m[i][k]; System.out.println(sum); EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Övning Matris Antag att vi har en matris booked av typen boolean[][] som ska användas för att hålla reda på bokade platser i en biosalong. Varje matriselement motsvarar en plats i salongen och har värdet true om platsen är bokad, i annat fall värdet false. Skriv satser som räknar antal bokade platser. Klassen String Klassen String beskriver en teckensträng (en följd av tecken). Tecknen kan läsas av men inte ändras. String s = "En massa tecken"; String empty = ""; s empty En massa tecken EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

13 Slå ihop (konkatenera) strängar Behandla alla tecken i strängen String s1 = "En text"; String s2 = "En text till"; String result = s1 + " och " + s2; Mönster: String s =...; for (int i = ; i < s.length(); i++) { // aktuellt tecken nås med anropet s.charat(i); s1 s2 result En text En text till En text och En text till Räkna antal blanktecken i strängen s. int spaces = ; for (int i = ; i < s.length(); i++) { if (s.charat(i) == ) { spaces++; EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Övning Jämföra teckensträngar med equals Vad skrivs ut? Förklara varför. Scanner scan = new Scanner(System.in); String s1 = scan.next(); String s2 = scan.next(); if (s1 == s2) { System.out.println("Lika"); else { System.out.println("Inte lika"); s1 s2 abc abc Vill man jämföra innehållet i teckensträngarna måste man använda metoden equals: /** Returnerar true om innehållet i aktuell sträng är lika med innehållet i s. */ boolean equals(object s); if (s1.equals(s2)) { System.out.println("Samma innehåll"); else { System.out.println("Inte samma innehåll"); EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

14 Jämföra teckensträngar med compareto Klassen StringBuilder Med metoden compareto kan man avgöra om en sträng är större än eller mindre än en annan sträng: /** Jämför aktuell sträng med s. Returnerar om teckensträngarna är lika, ett negativt tal om aktuell sträng är mindre än s, ett positivt tal om aktuell sträng är större än s. */ int compareto(string s); Klassen StringBuilder beskriver en följd av tecken som kan läsas och ändras. StringBuilder b = new StringBuilder("En massa tecken"); b.append("!"); String s1 = "java"; s1.compareto("java") == s1.compareto("javac") < s1.compareto("java") > s1.compareto("jazz") < b En massa tecken! EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Några metoder i klassen StringBuilder /** Skapar en tom strängbuffert. */ StringBuilder(); /** Skapar en strängbuffert med samma innehåll som s. */ StringBuilder(String s); /** Tar reda på antal tecken. */ int length(); /** Tar reda på tecknet på plats pos. */ char charat(int pos); /** Returnerar ett String-objekt med samma innehåll som denna strängbuffert. */ String tostring(); Ändra innehållet i StringBuilder-objekt /** Lägger in s efter tecknen i strängbufferten. */ StringBuilder append(string s); /** Ändrar tecknet på plats k till ch. */ void setcharat(int k, char ch); /** Lägger in s på plats k, flyttar tecknen efter. */ StringBuilder insert(int k, String s); /** Tar bort tecknet på plats k. */ StringBuilder deletecharat(int k); Man kan sätta in värden av andra typer än String i ett StringBuilderobjekt. Det finns flera metoder append och insert. Dessa har en parameter av typen int, double, char,... EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59

15 Metoden tostring Det är vanligt att man lägger till metoden tostring i sina klasser. Metoden tostring anropas t.ex. inuti println och används av debuggern när ett objekt ska skrivas ut. Metoden tostring i klassen Point (kap. 3) kan se ut så här: public String tostring() { return x + " " + y; eller så här: Delmål 2 Repetition På föreläsning 12 blir det repetition inför delmålskontroll 2. Det vi ska repetera är framförallt: implementering av klasser använda vektorer och matriser Material till denna repetitionsföreläsning delas ut separat. public String tostring() { StringBuilder b = new StringBuilder(); b.append(x); b.append( ); b.append(y); return b.tostring(); EDAA2 (F1-12 programmering) HT / 59 EDAA2 (F1-12 programmering) HT / 59 Checklista Exempel på vad du ska kunna Förklara begreppen datastruktur, vektor, matris. Deklarera, skapa och använda vektorer och matriser. Formulera algoritmer och programkod för att söka i en vektor eller matris (linjärsökning). Formulera algoritmer och programkod för att räkna antal element av olika slag (registrering). Använda klasserna String och StringBuilder Implementera och använda klasser (större än tidigare). EDAA2 (F1-12 programmering) HT / 59

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet

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

Saker du ska kunna Föreläsning 13 & 14

Saker du ska kunna Föreläsning 13 & 14 Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering

Läs mer

Föreläsning REPETITION & EXTENTA

Föreläsning REPETITION & EXTENTA Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder

Läs mer

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING Föreläsning 11 12 ALGORITMER: SÖKNING, REGISTRERING, SORTERING Seminarier: Fredagsklubben för dig som tycker att programmering är svårt (0 eller möjligen 1 poäng på delmålskontrollen) inte avsedda för

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

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

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random Kasta tärning tills etta Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt följande

Läs mer

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien

Algoritmexempel. Föreläsning 5-7 Innehåll. Summering Mönster. Summering Exempel: alternerande harmoniska serien Föreläsning 5-7 Innehåll Algoritm för summering Aritmetiska uttryck Logiska uttryck Algoritm för att beräkna max och min Repetition inför delmålskontroll 1 Teckenuttryck Slumptal Undervisningsmoment: föreläsning

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

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

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp Föreläsning 3-4 Innehåll Eempel på program med objekt Klass med main-metod Klasser Implementera (skriva programkod för) egna klasser Datatper Undervisningsmoment: föreläsning 3-4 övning 2 laboration 3-5

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 04 13, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner Programmeringsteknik och Matlab Övning 3 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

Föreläsning 2, vecka 8: Repetition

Föreläsning 2, vecka 8: Repetition TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning

Läs mer

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk Repetition EDAA10 Objekt-orientering Java är ett objekt-orienterat programmeringsspråk Program byggs upp av klasser och objekt Objekt instantieras från klasser Klasser och objekt innehåller attribut och

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

Instuderingsfrågor, del D

Instuderingsfrågor, del D Uppgift 1. Instuderingsfrågor, del D Objektorienterad programmering, Z1 I vilka av nedanstående problem behöver man använda sig av fält för att få en elegant lösning? I vilka problem är det är det onödigt/olämpligt

Läs mer

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

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap. Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.

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

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

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

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

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:

2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs: Övningsuppgifter I kursen ingår 10 övningar (det är ingen övning vecka 7 i läsperiod ht2). Under övningarna ska du självständigt eller tillsammans med en kamrat lösa övningsuppgifterna. Övningsledaren

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

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, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2014 04 29, 8.00 13.00 Anvisningar: Denna tentamen består av tre uppgifter. Preliminärt ger uppgifterna

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: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

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

JAVAUTVECKLING LEKTION 8

JAVAUTVECKLING LEKTION 8 JAVAUTVECKLING LEKTION 8 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Fält (Arrayer) Att skapa och arbeta med fält Indexering Jämförelse av fält Flerdimensionella fält 1 VAD

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2013 08 22, 8.00 13.00 Anvisningar: Denna tentamen består av fyra uppgifter. Preliminärt ger uppgifterna

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Detta lösningsförslag är skrivet i stor hast, så det är möjligt att det innehåller en del slarvfel jag ber i så fall om ursäkt för

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

PROGRAMMERING-Java Omtentamina

PROGRAMMERING-Java Omtentamina PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

Föreläsning Innehåll. Generisk klass. Några metoder i klassen ArrayList<E>

Föreläsning Innehåll. Generisk klass. Några metoder i klassen ArrayList<E> Föreläsning 13-15 Innehåll Klassen ArrayList Klassen ArrayList Inläsning från textfil, utskrift på textfil Arv Undervisningsmoment: föreläsning 13-15 övning 5 laboration 9-10 Avsnitt i läroboken:

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa

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

Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna

Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna Föreläsning 13-15 Innehåll Checklista Klassen ArrayList Arv Undervisningsmoment: föreläsning 13-15 övning 5 laboration 9-10 Avsnitt i läroboken: 12.1-3, 12.8, 9.1-9.6, 10 Avsnitt 12.6 och 12.10 ingår

Läs mer

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Tentamen ID1004 Objektorienterad programmering April 7, 2015 Ordinarie tentamen för ID1004 Objektorienterad programmering, 7 april 2015 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av en obligatorisk del och

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.

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

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack 725G61 - Laboration 2 Loopar och arrayer Johan Falkenjack October 29, 2013 1 Inledning I labb 1 lärde vi oss om de primitiva datatyperna (och lite om String). Vi lärde oss också att använda variabler av

Läs mer

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

[] Arrayer = Indexerad variabel

[] Arrayer = Indexerad variabel [] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas

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

Föreläsning 9 Innehåll

Föreläsning 9 Innehåll Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon

Läs mer

PROGRAMMERING-Java TENTAMINA

PROGRAMMERING-Java TENTAMINA PROGRAMMERING-Java TENTAMINA Nicolina Månsson 2010-03-17 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. - För

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Arrayer Metoder Räckvidd (Scope) Eclipse

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

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

Algoritmer. Två gränssnitt

Algoritmer. Två gränssnitt Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;

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

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t. Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen

Läs mer

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

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek Föreläsning 5 Innehåll Val av algoritm och datastruktur Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Det räcker inte med att en algoritm är korrekt

Läs mer

Grundläggande stränghantering

Grundläggande stränghantering Grundläggande En sträng är en sekvens av tecken (text). t) För att ange ett strängvärde omgärdar man det med dubbelfnuttar: Exempel på strängvärden: "Ångström" "1256" "ABC123" Man kan slå ihop strängar,

Läs mer

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

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något

Läs mer

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm. Algoritmanalys Analys av algoritmer används för att uppskatta effektivitet. Om vi t. ex. har n stycken tal lagrat i en array och vi vill linjärsöka i denna. Det betyder att vi måste leta i arrayen tills

Läs mer

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } }

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } } Rekursion 25 7 Rekursion Tema: Rekursiva algoritmer. Litteratur: Avsnitt 5.1 5.5 (7.1 7.5 i gamla upplagan) samt i bilderna från föreläsning 6. U 59. Man kan definiera potensfunktionen x n (n heltal 0)

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 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

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

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar

Läs mer

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

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

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

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

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

Metoder - en funktion: medel

Metoder - en funktion: medel itop Läsanvisning: kap 2+13 F5 Metoder - en funktion: medel metodhuvud, funktionshuvud, signatur modifierare formella resultatvärdets typ parametrar metodens namn! Metoder, parameteröverföring! Fält Nästa

Läs mer

OOP Tentamen

OOP Tentamen DVS SU/KTH 1 (6) OOP OOP Tentamen 2010-01-15 15.00 20.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv

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 , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

Läs mer

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

Föreläsning 6 Innehåll. Rekursion. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursiv problemlösning. Rekursion. Rekursivt tänkande: Föreläsning 6 Innehåll Rekursion Begreppet rekursion Rekursiv problemlösning Samband mellan rekursion och induktion Söndra-och-härska-algoritmer Dynamisk programmering Undervisningsmoment: föreläsning

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

2D1342 Programkonstruktion för F1, ht 2006

2D1342 Programkonstruktion för F1, ht 2006 2D1342 Programkonstruktion för F1, ht 2006 Lappskrivning 1 Tisdag 7/11 2006 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt Föreläsning 15 & 16 ARV Objektorienterad programmering (OOP) Idé: vi ser ett program som en modell av verkligheten Ursprung: Simula-67, Norsk regnesentral, 1960-talet Smalltalk-80: Xerox PARC, 1970-talet

Läs mer

Programexempel: tärningsspel

Programexempel: tärningsspel Programexempel: tärningsspel Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt

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

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540. Tentamen för TDA540 Objektorienterad programmering

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540. Tentamen för TDA540 Objektorienterad programmering Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540 Tentamen för TDA540 Objektorienterad programmering DAG: 15-04-18 TID: 14:00 18:00 Ansvarig: Joachim von Hacht och Christer Carlsson

Läs mer

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok 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

Läs mer

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

2D1339 Programkonstruktion för F1, ht 2004

2D1339 Programkonstruktion för F1, ht 2004 2D1339 Programkonstruktion för F1, ht 2004 Kontrollskrivning 1 Onsdag 24/11 2004 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga

Läs mer

Objektorienterad programmering. Telefonboken igen, en bättre version. En jämförelse. Föreläsning 4

Objektorienterad programmering. Telefonboken igen, en bättre version. En jämförelse. Föreläsning 4 Telefonboken Objektorienterad programmering Telefonboken igen, en bättre version Telefonboken, igen. Tvådimensionella fält. Exempel: femtonspelet. Modellklassen. Ett textbaserat program. Ett grafiskt program.

Läs mer

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg 2013 12 19 1. a) En samling element där insättning och borttagning

Läs mer