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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 Föreläsning jan 15 v3, jan 22 v4. GT Chapter 6, GT Chapter 7 Hemuppgifter redovisning v4, v5. Planer för läsperiod 3. I GT kap 7 kommer vi att läsa 285 <= sida < 316. I GT kap 8 kommer vi att läsa 333 <= sida < 362, dvs 8.1, 8.2, 8.3, 8.4 och 8.5. I GT kap 9 kommer vi att läsa 379 <= sida < 393, dvs 9.1. I GT kap 10 kommer vi att läsa 447 <= sida < 486. Dock ej avsnitt <= sida <=479 Dessutom skall vi lära oss I/O (Input/Output) i Java och förhoppningsvis ha en avslutande repetitionsföreläsning. GT kap 11 och GT kap 12 ingår inte i kursen. Det är ingen katastrof om man råkar lära sig något av det överhoppade, det mesta av detta ingår i kommande kurser, främst ADK-kusen (Algoritmer-Datastrukturer-Komplexitet). GT Kapitel 6 analogt med boken. Vi har kvar implementationerna i slutet på kapitlet. Klassdiagram för EulerTour med ärvande klass PrintExpressionTour: EulerTour protected InspectableBinaryTree tree; public Object execute(binarytree T) protected Object eulertour(position p) protected void visitexternal(position p, TraversalResult r) protected void visitleft(position p, TraversalResult r) protected void visitbelow(position p, TraversalResult r) protected void visitright(position p, TraversalResult r) protected TraversalResult initresult() protected Object result(traversalresult r) PrintExpressionTour public Object execute(binarytree T) protected void visitexternal(position p, TraversalResult r) protected void visitleft(position p, TraversalResult r) protected void visitbelow(position p, TraversalResult r) protected void visitright(position p, TraversalResult r) GT Kapitel 7 analogt med boken

2 Hemuppgifter redovisning v4. C = 1, 4, 5 B= 1, 3, 4, 5 A = 1, 2, 4, 5, 6 Inlämning under läsperiod 3 senast måndagar klockan CBA-hemuppgift : (delvis P-6.3 GT page 281) Deluppgift: Komplettera bokens text så att klassen LinkedBinaryTree fungerar (på en egen katalog). Alla behövliga gränsnitt, dvs interface Position och alla interface från och med Inspectable- Container till och med BinaryTree i höger del av figure 6.11 GT sid 248, och bokens text till LinkedBinaryTree och BTNode finns på /info/inda01/gtch6/. Det mesta finns också på nätet, varifrån jag kopierat koden. Jag har dock kompletterat BinaryTreegränssnittet med två metoder (som redan finns implementerade i bokens LinkedBinaryTree) : public interface BinaryTree extends InspectableBinaryTree, PositionalContainer { /** Transform v from an external into an internal node by creating two new external nodes and making them the left and right children of v, respectivley. */ public void expandexternal(position v) ; /** Remove the external node w together with its parent v, replacing v with the sibling of w. */ public void removeaboveexternal(position v); Om man försöker kompilera upptäcker man att metoden positions() innehåller begrepp som är oidentiferade. Skriv om metodens "kropp" så att att metoden vid anrop enbart slänger ett RuntimeException med texten "positions() in class LinkedBinaryTree not implemented yet" Gör på motsvarande sätt med de andra metoderna (iterator-returnerare) som saknas. Om allt fungerar skall man nu kunna köra det givna (av mig skrivna) programmet UsePedigree (studera programmet!) som också finns på katalogen som angetts ovan. Körresultat: Antavla : Rut Bo Adam Eva Siv Per Kersti Utskriften visar Ruts härstammning, (far tv, mor t.h), som finns i detta binär träd, en antavla eller stamtavla (engelska pedigree) som vi också kan rita så här (för en gångs skull ritar vi träd rättvänt!): Adam Eva Per Kersti Bo Siv Rut Ruts mormor är alltså Kersti, Ruts far heter Bo osv.

3 Deluppgift: Komplettera programmet UsePedigree så att man gång på gång kan ge en persons namn och få reda på personens relation med personen i roten. Körexempel : Ge namnet på den person vars relation till Rut du vill veta (Sluta ge vagnretur) : Kersti Kersti är mormor till Rut Ge namnet på den person vars relation till Rut du vill veta (Sluta ge vagnretur) : Bo Bo är far till Rut Ge namnet på den person vars relation till Rut du vill veta (Sluta ge vagnretur) : Pia Pia finns ej i släktträdet Ge namnet på den person vars relation till Rut du vill veta (Sluta ge vagnretur) : Du kan utgå ifrån att varje namn bara finns på max ett ställe i trädet. Programmet använder förstås svenska språkets smarta och rekursiva sätt att benämna anfäder och anmödrar. Det är OK att i större träd än det ovanstående få utskrifter som mormorfarfarmor osv. Om du gör A-uppgift 6 så får du inte lösa denna uppgift med hjälp av Euler-tur-mallen. PS. Problemet löses lämpligen med rekursion. Om du blivit så van att programmera OO-mässigt att du ogillar att skriva klassmetoder kan du gå via en klass, kallad Pedigree t ex. DS. 2. A-hemuppgift : (P-6.2 GT page 281) Implementera gränssittet BinaryTree med en vektor med klassen VectorBinaryTree. Använd java.util.vector. Du ska kunna testköra din implementatiion med UsePedigree från uppgift 1, det enda som ska behöver ändras är BinaryTree pg = new LinkedBinaryTree(); till BinaryTree pg = new VectorBinaryTree(); De iterator-returnerande metoderna i gränssnittet som man kunde implementera med att slänga undantag kan även nu "implementeras" på samma sätt. Tips: Det står ju en del i avsnitt GT Jag är lite osäker på hur svårt ni tycker detta är, man måste nog väl förstå definitionerna i kap 5 och kapitel 6 i GT för att lösa uppgiften. Den som vill tänka helt själv kan ju sluta läsa här. Vi måste ju ha ett Position-begrepp för våra träd-element i vektorn. I avsnitt resoneras om två olika sätt att lösa motsvarande problem för vektorimplementerade sekvenser. Det första sättet som föreslås i första stycket på sid 209 avfärdas dock för sekvenser, eftersom positionerna "inte hänger med" vid t ex insertfirst. I våra träd ändras dock aldrig positioner, de bara tillkommer nya när trädet växer "ytterst" eller försvinner positioner när trädet "ansas" genom att man beskär trädet "ytterst", varför även första sättet är ganska OK såvitt jag förstår. Det är nog också det som avses med meningen "That is, each position object v is simply a "wrapper" for the index p(v) into the vector S." på sid 264. Jag använde det första sättet för mitt vektorbaserade binära träd. Jag skrev en klass VectorPosition som implementerar Position och i någon mån ersätter BTNode i implementeringen med länkning. Genom att förse VectorPosition med lämpliga metoder blev koden för VectorBinaryTree rätt lik den givna koden för LinkedBinaryTree.

4 3. B-hemuppgift : Skriv ut antavlan i UsePedigree med hjälp av en Euler-tur, dvs designmönstret "Templet Method Pattern" istället för med den givna metoden public static void preorder- Print(..). Utskriften skall bli densamma, dvs Antavla : Rut Bo Adam Eva Siv Per Kersti På /info/inda01/gtch6/ finns bokens klass EulerTour (GT sid 260) och hjälpklassen TraversalResult. Man skall alltså skriva en subklass PrintPedigree till EulerTour.Testkörningen sker genom att i UsePedigree instansiera ett PrintPedigree-objekt och sedan anropa execute i detta objekt. Har du gjort A-uppgift 2 så kolla att det fungerar också med VectorBinaryTree. Tips: För att hålla reda på nivån (och därmed hur många blanktecken som skall föregå ett namn) använder jag inte alls TraversalResult utan har istället en instansvariabel i mitt PrintPedigreeobjekt som jag räknar upp eller ned på lämpligt sätt. 4. CBA-hemuppgift : Implementera metoden positions() i LinkedBinaryTree på riktigt, dvs så att den retunerar en PositionIterator istället för att slänga ett undantag som vi gjorde i uppgift 1. Om man gör som boken antyder måste man skriva en metod inorderpositions och en klass ArrayPositionIterator som implementerar PositionIterator. Provkör genom att skriva en komplettering av UsePedigree som använderanvända en PositionIterator för att få få denna utskrift Alla elementen med PositonIterator : Rut Bo Adam Eva Siv Per Kersti Har du gjort A-uppgift 2 så gör även samma sak för VectorBinaryTree. Min lösning blev identisk med lösningen för LinkedBinaryTree. 5. CBA-hemuppgift : Kör UNIX-kommando >du på din startkatalog. Katalogerna och filerna bildar ett träd. Hur traverseras trädet? Finns det anledning att städa bland dina filer?

5 6. A-hemuppgift : Lös andra deluppgiften i uppgift 1, att finna någon persons relation med personen i trädets rot, med hjälp av en Euler-tur, dvs med designmönstret "Templet Method Pattern" Utskriften skall bli densamma, t ex : Ge namnet på den person vars relation till Rut du vill veta (Sluta ge vagnretur) : Kersti Kersti är mormor till Rut På /info/inda01/gtch6/ finns bokens klass EulerTour (GT sid 260) och hjälpklassen TraversalResult. Man skall alltså skriva en subklass till en EulerTour.Testkörningen sker genom att i UsePedigree instansiera ett subklass-objekt och sedan anropa execute i detta objekt. Har du gjort A-uppgift 2 så kolla att det fungerar också med VectorBinaryTree. Tips: Jag lät subklassens execute-metod ha denna signatur för att föra över nyckeln till en instansvariabel i subklass-objektet: public Object execute(binarytree T, String ikey)

6 Hemuppgifter redovisning v5. C = 1, 2 B= 2, 3, 4 A = 2, 3, 4, 5 Inlämning under läsperiod 3 senast måndagar klockan Allmänt om uppgifterna : I boken byggs implementationer av mer avancerade ADT upp med hjälp av implementationer av enklare ADT, man kan alltså tänka sig att en DLPriorityQueue skulle byggas på en List från kapitel 5 och ett HeapTree med BinaryTree från kap 6. Men till slut blir det nog enklare (och mindre kod) att direkt bygga en ADT från "scratch", vilket jag tänkt att vi gör i sorteringsuppgifterna denna vecka. För enkelhets skull är nycklarna och elementen i de "Items", dvs nyckel-element-par, vi skall sortera ofta strängar med samma innehåll. När vi skapar implementationer av prioitetsköer, t ex DLPriorityQueue i uppgift 1 och HeapPriorityQueue i uppgift 4 skall vi som argument till konstruktorn ge ett objekt som implementerar gränsnittetet Comparator. Det finns ett förslag till detta gränssnitt i boken, men också ett annat i java.util. Skillnaderna diskuteras i GT överst på sidan 295, och jag tycker att vi använder java.bibliotekets version. Många klasser i Javabiblioteket, bl a String, implementerar ytterligare ett annat gränssitt Comparable, vilket jag utnyttjat i MyComparator. Jag ger ett MyComparatorobjekt till mina proritetsköer som används på nycklarna vid sorteringarna för att avgöra ordningen mellan "Items": import java.util.*; class MyComparator implements Comparator{ // implements java.util.comparator public int compare(object a, Object b) { if (a instanceof Comparable b instanceof Comparable ) { return ((Comparable) a).compareto((comparable) b); else { throw new RuntimeException("compare() in MyComparator," + " arguments must be Comparable"); Körresultaten i programmen är ofta av denna typ: /*Körresultat :...>java...sort... bertil david adam ludvig martin zero rudolf adam bertil david ludvig martin rudolf zero */

7 1. C-hemuppgift : Implementera en prioritetskö med en dubbellänkad lista (som hålls sorterad) i en klass DLPriority- Queue som skall implementera gränsnittet PriorityQueue. Gränssittet finns givet på /info/inda01/gtch7, tillsammans med DLItemNode, och Item som man också har glädje av. Med hjälp av implementationen kan man göra en insättningssortering med detta program (finns också på info/inda01/gtch7 ), som alltså kan användas som test på att implementationen är riktig: import java.util.*; public class PriorityQueueSort { public static void main(string [] arg) { // PriorityQueue p = new HeapPriorityQueue(new MyComparator()) ; PriorityQueue p = new DLPriorityQueue(new MyComparator()) ; for (int i = 0; i < arg.length; i = i+1) { p.insertitem(arg[i], arg[i]); for (int i = 0; i < arg.length; i = i+1) { System.out.println(p.removeMin()); Tips: Min favoritstruktur är dubbellänkade noder, men till skillnad från boken med samma nod som både header och trailer, dvs vi får en cirkulär dubbellänkad lista med en vaktpost (sentinel) som är både "header" och "trailer". Till vänster en bild på strukturen när den är tom, till höger med tre element: 0 tom prioitetskö 3 prioitetskö med 3 element vaktpost, sentinel vaktpost, sentinel david david adam adam bertil bertil När du skriver insertitem kommer du antagligen att skriva en snurra som söker efter första elementet som har större nyckel, dvs du traskar vidare i kedjan så länge examinerat element har för liten nyckel. Avbrottsvillkoret i snurran kan skrivas enklare om man fyller vaktposten med nyckeln i det element som man skall stoppa in i kedjan.

8 2. CBA-hemuppgift : Implementera en "på-plats"sortering, (In-place-sort). Du kan välja mellan att göra en bubbelsortering eller en insättningsortering genom att kommentera bort de andra sorterarna i nedanstående testprogram. Inget av dessa sorteringssätt är något vidare val för på-plats-sortering, vilket däremot "in-place-heapsort" är, vilket är en senare uppgift. Detta testprogram (på /info/inda01/gtch7) kan används för att kontrollera implementationen: import java.util.*; public class SortInPlace { // finns på/info/inda01/gtch7 public static void main(string [] arg) { Vector v = new Vector(); for (int i = 0; i < arg.length; i = i+1) { v.add(new JustItem(arg[i], arg[i])); //Sorter p = new HeapSort(new MyComparator(), v); //Välj sorterare!!!!! Sorter p = new BubbelSort(new MyComparator(), v); //Sorter p = new InsertionSort(new MyComparator(), v); p.sort(); for (int i = 0; i < v.size(); i = i+1) { System.out.println((String) ((Item) (v.get(i))).element()); public interface Sorter { // Gränssnittet Sorter (på /info/inda01/gtch7) public void sort(); Tips: Det är alltså java.util.vector v som blir sorterad. Uppgiften är att skriva klassen Bubbel sort eller klassen InsertionSort som skall implementera interface Sorter, dvs klassen skall ha metoden sort(). Ett Sorter-objekt får en vektor och en komparator när det skapas. Vektorn kan sedan sorteras med sort(), varvid komparatorn bestämmer vad som menas med "mindre än".

9 3.BA-hemuppgift : Det kan ju vara roligt att se vad som händer under på-plats-sorteringen i uppgift 2. Följande givna program lägger in den sekvens items som skall sorteras dels i en vanlig vektor v, dels i en Final- RankRankVector frrv. Märk att "items" är gemensamma! Därefter sorteras v. Med hjälp av v kan vi nu byta elementen i alla items så att vi i stället har slutgiltiga rangen som elementvärde. Om vi nu sorterar frrv så skrivs hela frrv ut varje gång vi anropar set, pga att set är omdefinerad för FinalRankRankVector. Om du kombinerar SortInPlace1 med den sorterarare du gjort i förgående uppgift skall du kunna provköra för att få frrv utskriven gång på gång. Utskriften består av varje items <rang> <nykel> <slutgiltig rang>. import java.util.*; public class SortInPlace1 { // finns på/info/inda01/gtch7 public static void main(string [] arg) { // Move items to be sorted to v and frrv Vector v = new Vector(); Vector frrv = new FinalRankRankVector(); for (int i = 0; i < arg.length; i = i+1) { Item ii = new JustItem(arg[i], arg[i]); frrv.add(ii); v.add(ii); // Get a sorter for v, and sort //Sorter p = new InsertionSort(new MyComparator(), v); //Välj sorterare!!!!! Sorter p = new BubbelSort(new MyComparator(), v); //Sorter p = new HeapSort(new MyComparator(), v); p.sort(); System.out.println("Result of sort:"); for (int i = 0; i < v.size(); i = i+1) { System.out.println((String) ((Item) (v.get(i))).element()); // Change item elemnets to final rank for (int i = 0; i < v.size(); i = i+1) { ((Item) (v.get(i))).setelement(new Integer(i)); System.out.println("finalrankrankvector :"); for (int i = 0; i < frrv.size(); i = i+1) { System.out.println((Integer) ((Item) (frrv.get(i))).element()); // Sort frrv, which is a // FinalRankRankVector => vector will be shown at every set //p = new InsertionSort(new MyComparator(), frrv);//välj sorterare!!!!! p = new BubbelSort(new MyComparator(), frrv); //p = new InsertionSort(new MyComparator(), frrv); p.sort();

10 import java.util.*; public class FinalRankRankVector extends Vector { // finns på/info/inda01/gtch7 public void show() { for (int i = 0; i < size() ; i = i+1) { Item ii = (Item) get(i); if ( ii!= null) { System.out.print(" " + i + " " + ii.key() + " " + ii.element()); else { System.out.print(" " + i + " "); System.out.println(); public Object set(int index, Object oitem) { //overrides inherited set Object result = super.set(index, oitem); show(); return result; Uppgiften är att komplettera FinalRankRankVector så att man även får se sorteringen i en Java- Frame. Provkör klassfilen /info/inda01/gtch7/sortinplace1 så får du se min bubbelsortering "live in action". T ex... >java SortInPlace1 bertil adam david tore sverker erik eva sven zero per filip Gör teminalfönstret smalt och lägg de vid sedan så att fönstret inte skymmer "framen". Gör terminalfönstret aktivt och ge vagnreturer, så får man ser hur elementen bubblar på tills allt är sorterat, dvs man får en diagonal i fönstret. Ett element skrivs alltså ut på (rang, slutgiltig rang)-stället i ett n x n rutmönster, där n = v.size(); Tips: Jag försåg min FinalRankRankVector med en Frame FinalRankRankFrame (storleken 800 pixel * 800 pixel) som använder GridLayout och har en matris java.label []. Metoden show() i FinalRankRankVectora kompletteras så att den även skriver ny text i "framen".

11 4.BA-hemuppgift : Implementera (direkt, utan att gå via något ADT binärt träd som boken gör) en prioritetskö med en heap (i en java.util.vector) med en klass HeapPriorityQueue som skall implementera gränsnittet PriorityQueue. Gränsittet finns givet på /info/inda01/gtch7, tillsammans med bokens Item, som man ju har glädje av. Programmet kan testköras med samma testprogram som uppgift1, om man skriver i stället för PriorityQueue p = new HeapPriorityQueue(new MyComparator()) ; PriorityQueue p = new DLPriorityQueue(new MyComparator()) ; Märk finessen med "att programmera mot ett interface"!. Programmet gör nu förstås en "heap"- sortering. Delar av texten för uppgift 1 är relevant för denna uppgift också, förutom bokens avsnitt på sid 314.

12 5. A-hemuppgift : Implementera en "på-plats"heap-sortering, (In-place heap-sort). Testprogrammmet i uppgift 2 kan ändras så att man kan testa denna uppgift. Även testprogrammmet i uppgift 3 och din lösning till uppgift 3 skall kunna fungera med lösningen till denna uppgift, dvs du skall kunna se din "på-plats"heapsortering "live". Tips: Man kan säkert skriva HeapSort genom att bygga om HeapPriorityQueue, vilket är OK. Jag har dock löst problemet så här genom arv (mer intellektuell utmaning kanske): PriorityQueue HeapPriorityQueue protected Comparator comp protected Vector v protected int size... public void insertitem(object k, Object e)... /* m fl */ Sorter HeapSort : public HeapSort(Comparator ic, Vector iv) public void sort() private void insertitem(item ii) Vid arv behöver man en "omvänd komparator" vilket man kan få så här: class MyInvertedComparator implements Comparator{ private Comparator c; public MyInvertedComparator(Comparator ic) { c = ic; public int compare(object a, Object b) { return -c.compare(a,b);

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

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

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

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

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

Läs mer

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

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

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

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

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

Läs mer

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

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

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,

Läs mer

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 DAG: 15-08-19 TID: 8:30 12:30

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 DAG: 15-08-19 TID: 8:30 12:30 Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 Tentamen för TDA550 Objektorienterad programvaruutveckling IT, fk DAG: 15-08-19 TID: 8:30 12:30 Ansvarig: Christer Carlsson, ankn 1038

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

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

Läs mer

Träd Hierarkiska strukturer

Träd Hierarkiska strukturer Träd Hierarkiska strukturer a 1 a 2 a 3 a 4 a 2 a 5 a 6 a 7 Hierarki: Korta vägar till många Hur korta? Linjär lista: n 2 Träd: Antal element på avståndet m: g m a 1 a 3 a 8 a 12 m = log g n a 9 a 10 Väglängden

Läs mer

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

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

Läs mer

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

Träd. Rot. Förgrening. Löv

Träd. Rot. Förgrening. Löv Träd Träd Rot Förgrening Löv Exempel: Organisationsschema Rot Överkucku Förgrening Underhuggare Underhuggare Administativ chef Kanslichef Knegare Knegare Knegare Byråchef Löv Intendent Avd. chef Intendent

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

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

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

Laboration A Objektsamlingar

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

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

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

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning. Introduktion Upplägg Kursen heter konstruktion, ej design eller formgivning. det handlar främst om att lära sig att bygga gränssnitt som är sunda den är praktiskt orienterad; vetenskapliga teorier finns,

Läs mer

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25

Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25 Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se 1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik

Läs mer

Vad har vi pratat om i kursen?

Vad har vi pratat om i kursen? Vad har vi pratat om i kursen? Föreläsning 1 & 2 Systemminnet och systemstacken Rekursion Abstrakta datatyper Föreläsning 3 ADT:n Länkad lista Föreläsning 4 ADT:n Kö ADT:n Stack Föreläsning 5 Komplexitet

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

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans

Läs mer

Att använda Java SE JDK 6

Att använda Java SE JDK 6 Att använda Java SE JDK 6 Programmeringsspråket Java är utvecklat av det amerikanska företaget Sun Microsystems. Sun erbjuder gratis en utvecklingsmiljö för java-programmering, Java 2 SE (Standard Edition).

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

2. Palindrom. Exempel: 1,2,3,2,1 är ett palindrom, och även 0, men inte 1,2,3,1,2,3.

2. Palindrom. Exempel: 1,2,3,2,1 är ett palindrom, och även 0, men inte 1,2,3,1,2,3. LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, 491000, 073-820 1700 Resultatet offentliggörs senast: 2011-04-02. Tillåtna

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

Exempelsamling Assemblerprogrammering

Exempelsamling Assemblerprogrammering Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start

Läs mer

Laboration 10 - Eclipse

Laboration 10 - Eclipse Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

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

Tentamen för TTIT71 Programmering 2007-01-10 kl. 08-12 Institutionen för datavetenskap Linköpings universitet. Uppgift 1. (2 p)

Tentamen för TTIT71 Programmering 2007-01-10 kl. 08-12 Institutionen för datavetenskap Linköpings universitet. Uppgift 1. (2 p) Tentamen för TTIT71 Programmering 2007-01-10 kl. 08-12 Institutionen för datavetenskap Linköpings universitet Antal uppgifter: 6 Max: 32 poäng Betyg: 3:a 16 poäng, 4:a 24 poäng, 5:a 28 poäng Hjälpmedel:

Läs mer

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 DAG: 15-08-19 TID: 8:30 12:30

Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 DAG: 15-08-19 TID: 8:30 12:30 Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-08-19 TDA550 Tentamen för TDA550 Objektorienterad programvaruutveckling IT, fk DAG: 15-08-19 TID: 8:30 12:30 Ansvarig: Christer Carlsson, ankn 1038

Läs mer

Arv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass).

Arv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass). 3 Arv och gränssnitt 3.1 Vad innebär arv? Ett objektorienterat språk bygger på att programmeraren ges möjligheten att modellera verkligheten med hjälp av objekt. Objekt låter sig definieras i form av klasser.

Läs mer

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

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. .0.0 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6 poäng Denna tentamen

Läs mer

Objektorienterad Programmering Övningsuppgifter

Objektorienterad Programmering Övningsuppgifter Objektorienterad Programmering Övningsuppgifter Våren 2009 1. Skriv ett program som utför beräkning av fakultet för heltal. Nedan följer ett exempel på hur programmet skulle kunna fungera. ~pem> java factorial

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen 2010-10-18

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen 2010-10-18 DD1320 Tillämpad datalogi Lösnings-skiss till tentamen 2010-10-18 1. Mormors mobil 10p M O R M O R S M O B I L M O R M O R S M O B I L i 1 2 3 4 5 6 7 8 9 10 11 12 next[i] 0 1 1 0 1 1 4 0 1 3 1 1 Bakåtpilarna/next-värde

Läs mer

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Föreläsnings 11 - GUI, Händelsestyrda program, MVC Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken

Läs mer

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde. Programmering hh.se/db2004 Föreläsning 7: Funktioner Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Funktioner Statiska metoder 1 Kan ta 0 eller flera argument. 2 Kan producera

Läs mer

Institutionen för datavetenskap HT 1 2007/2008. Testning med JUnit

Institutionen för datavetenskap HT 1 2007/2008. Testning med JUnit LUNDS TEKNISKA HÖGSKOLA EDA690 Algoritmer och datastrukturer Institutionen för datavetenskap HT 1 2007/2008 Enhetstestning Testning med JUnit När man implementerat en klass måste man, innan den kan användas,

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) 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/2d1310/

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

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik Fortsättningskurs i programmering F 5 GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 1 Abstract Window Toolkit Paket för hantering av grafik dvs skapa grafisk användargränssnitt java.awt

Läs mer

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade. Sortering Den sorteringsalgoritm som vi använder oss kallas selection sort (urvalssortering) och är en av många existerande sorteringsalgoritmer. Dess funktionssätt beskrivs kanske bäst genom ett konkret

Läs mer

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer

Läs mer

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false.

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false. Laboration 2. I denna laboration skall ni programmera en robot som modelleras av den givna klassen Robot. En robot vistas i en enkel värld, som modelleras av klassen RobotWorld. Världen består av ett rutmönster

Läs mer

Modern Programmering (2546) Tentamen lördag 30.09.2000

Modern Programmering (2546) Tentamen lördag 30.09.2000 Modern Programmering (2546) Tentamen lördag 30.09.2000 Svara på minst sex frågor. Om du svarar på alla sju frågorna faller den fråga bort som ger minst antal poäng. Maximalt 70 poäng. Det krävs 35 poäng

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

Föreläsning 13. Rekursion

Föreläsning 13. Rekursion Föreläsning 13 Rekursion Rekursion En rekursiv metod är en metod som anropar sig själv. Rekursion används som alternativ till iteration. Det finns programspråk som stödjer - enbart iteration (FORTRAN)

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 8. Undantag Designmönstert Strategy Gränssnittet Comparable Gränssnittet Comparator

Föreläsning 8. Undantag Designmönstert Strategy Gränssnittet Comparable Gränssnittet Comparator Föreläsning 8 Undantag Designmönstert Strategy Gränssnittet Comparable Gränssnittet Comparator Fel i program När man skriver program uppkommer alltid olika typer av fel: Kompileringsfel, fel som beror

Läs mer

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar Klassbegreppet och C++ OOP UML Klasser och objekt i C++ Uppdelning i filer Attribut och metoder Inkappsling - åtkomst Klassattribut - objektattribut Objekt-orienterad programmering Att använda ett objektorienterat

Läs mer

Föreläsning 3: Händelsestyrda program och användargränssnitt

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

Laboration 4: Digitala bilder

Laboration 4: Digitala bilder Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse

Läs mer

Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized.

Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas (inbyggda monitor) synchronized. 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized. previous next Java Java är konstruerat på

Läs mer

Tentamen i Programmeringsteknik I, ES, 2010-03-18

Tentamen i Programmeringsteknik I, ES, 2010-03-18 Tentamen i Programmeringsteknik I, ES, 2010-03-18 Skriv tid: 14-17. Hjälpmedel: 1. Kurslitteratur, en av följande: Lewis & Loftus, Java Software Solutions Skansholm, Java Direkt Guzdial & Ericson, Intrododuction

Läs mer

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28

FactoryCast HMI. Premium & Quantum PLC. Applets 2004-10-28 FactoryCast HMI Premium & Quantum PLC Applets 2004-10-28 INNEHÅLLSFÖRTECKNING 1 OM DETTA DOKUMENT...3 2 FÖRUTSÄTTNINGAR...3 3 PROJEKT I J++...4 3.1 LÄSA PLC-VARIABLER...4 3.1.1 Gränssnittet...4 3.1.2 Upprätta

Läs mer

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning

Läs mer

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14 Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet

Läs mer

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

Institutionen för TENTAMEN CTH VT-14 Datavetenskap 2014-04-23 TDA540. Tentamen för TDA540 Objektorienterad programmering

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

Läs mer

Laboration 12, Arrayer

Laboration 12, Arrayer Laboration 12, Arrayer Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration12 i ditt laborationsprojekt innan du fortsätter på denna laboration. Uppgift 1

Läs mer

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERING-JAVA TENTAMINA PROGRAMMERING-JAVA TENTAMINA Nicolina Månsson 2010-08-16 (Kontaktperson Nicolina Månsson, tel. 0768-530640) Tentamensinstruktioner Poängsättning Hela tentamen omfattar 42 poäng. Poäng för varje uppgift

Läs mer

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2 Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1

Läs mer

Lösningsförslag övning 2.

Lösningsförslag övning 2. Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static

Läs mer

Att öva på och förstå ett program med flera samverkande klasser.

Att öva på och förstå ett program med flera samverkande klasser. Inlämningsuppgift 4 klassen Kund (Customer) Att öva på och förstå ett program med flera samverkande klasser. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika

Läs mer

EN SNABBIS OM DoA. Programmeringsmetodik med Java, HT-07 Kognitionsvetenskapliga programmet. Pedher Johansson 7 januari 2008

EN SNABBIS OM DoA. Programmeringsmetodik med Java, HT-07 Kognitionsvetenskapliga programmet. Pedher Johansson 7 januari 2008 EN SNABBIS OM DoA Programmeringsmetodik med Java, HT-07 Kognitionsvetenskapliga programmet Pedher Johansson 7 januari 2008 UMEÅ UNIVERSITY DEPARTMENT OF COMPUTING SCIENCE SE-901 87 UMEÅ SWEDEN Innehållsförteckning

Läs mer

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42 Programmering i C++ EDA623 Arv EDA623 (Föreläsning 6) HT 2013 1 / 42 Arv Innehåll Härledda klasser Konstruktorer och destruktorer vid arv Tillgänglighet Polymorfism och dynamisk bindning Abstrakta klasser

Läs mer

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning

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

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Datastrukturer. föreläsning 6. Maps 1

Datastrukturer. föreläsning 6. Maps 1 Datastrukturer föreläsning 6 Maps 1 Avbildningar och lexika Maps 2 Vad är ett lexikon? Namn Telefonnummer Peter 031-405937 Peter 0736-341482 Paul 031-405937 Paul 0737-305459 Hannah 031-405937 Hannah 0730-732100

Läs mer

Tentamen i DD2387 Programsystemkonstruktion med C++

Tentamen i DD2387 Programsystemkonstruktion med C++ Tentamen i DD2387 Programsystemkonstruktion med C++ Datum: Fredag 24 oktober 2008, 14-18 Hjälpmedel: En eller två valfria läroböcker om C++ id: Tid: 4 timmar Skriv inte ditt namn på tentan. Under tentan

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering 2I1049 Föreläsning 8 Grafiska gränssnitt, Java interface och händelsehantering 1 KTH-MI Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste

Läs mer

kind spelling Scanning

kind spelling Scanning sats terminal Kompilatorteknik 2015 källprogram! Exempel program let var v : integer; const t ~ 3 in v := v + t kind spelling Scanning LET let föreläsningsfilmer Scannerns eller den lexikala analysatorns

Läs mer

Ändringsbar (mutable compound) data. TDDC74 Programmering: abstraktion och modellering. Sätta - samman listor kopiering. Hitta sista cons-cellen

Ändringsbar (mutable compound) data. TDDC74 Programmering: abstraktion och modellering. Sätta - samman listor kopiering. Hitta sista cons-cellen TDDC74 Programmering: abstraktion och modellering Ändringsbar (mutable comound) data Att göra strukturförändringar i listor Ändra car- och cdr-ekare SICP 3 (del ) Föreläsning 8 Anders Haraldsson (set-car!

Läs mer

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33 Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation

Läs mer

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1a (Aktiekurser utan poster) Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

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

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

Labbinstruktioner för Java/Swing

Labbinstruktioner för Java/Swing Labbinstruktioner för Java/Swing Grafik- och interaktionsprogrammering 2008 Martin Berglund Allmänt Dessa instruktioner är på intet sett den enda möjliga lösningen på labben, tvärtom finns

Läs mer

LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015

LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015 LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015 Testning med JUnit 1 Inledning JUnit är ett ramverk för enhetstestning av Javakod. Det är utvecklat

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2004 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande

Läs mer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer Föreläsning 4 Metodanrop switch-slingor Rekursiva metoder Repetition av de första föreläsningarna Inför seminariet Nästa föreläsning Metodanrop - primitiva typer Vid metodanrop kopieras värdet av en variabel

Läs mer

PROV. 10 Uppräknade datatyper

PROV. 10 Uppräknade datatyper 10 10.1 10.2 Definition 10.3 Användning och regler 10.4 switch-satsen 10.5 Iteration över samtliga värden 10.6 Instansvariabler och instanstjänster 10.7 Värdespecifika implementationer 10.1 Hur ser vi

Läs mer

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen *:58/ID100V Programmering i C Exempel 3 DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst

Läs mer