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

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

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

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

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

Länkade strukturer. (del 2)

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

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

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

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

DAT043 - föreläsning 8

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

Laboration 13, Arrayer och objekt

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Föreläsning 1 Datastrukturer (DAT037)

Föreläsning 14 Innehåll

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

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

Objektorienterad Programmering (TDDC77)

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

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

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

Föreläsning 2 Datastrukturer (DAT037)

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

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

TENTAMEN OOP

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Lösningar för tenta 2 DAT043,

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

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

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

Tentamen i Algoritmer & Datastrukturer i Java

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

Repetition av OOP- och Javabegrepp

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

OOP Objekt-orienterad programmering

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Repetition av OOP- och Javabegrepp

Objektorienterad programmering i Java

Programmeringsteknik II

Konstruktion av klasser med klasser

Objektorienterad Programmering (TDDC77)

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

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

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

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

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

TENTAMEN OOP

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Föreläsning REPETITION & EXTENTA

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

OOP Tenta

OOP Objekt-orienterad programmering

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Klasshierarkier - repetition

DAT043 Objektorienterad Programmering

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Föreläsning 9 Innehåll

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

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

Föreläsning 2 Datastrukturer (DAT037)

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

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

Classes och Interfaces, Objects och References, Initialization

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

Föreläsning 15: Repetition DVGA02

Algoritmer. Två gränssnitt

Föreläsning 9: Arv och UML

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

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

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

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

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

Generisk klass med typparameter Inre klass - ListIterator

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

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

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

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

Tentamen. Programmeringsmetodik, KV: Java och OOP. 20 januari 2005

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

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

Samlingar Collection classes

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Programmering A. Johan Eliasson

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Lösningar till tentamen i EDAF25

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design Alex Gerdes, 2016

Föreläsning 1. Abstrakta datatyper, listor och effektivitet

Transkript:

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 - ArrayList, HashMap Vad handlar kursen om? Mål: Att ge fördjupad kunskap om metoder och hjälpmedel för analys och utformning av lösningar av programmeringsproblem. Detta omfattar : Att lära sig implementera och tillämpa några mycket kända algoritmer och datastrukturer Att lära sig göra bedömningar av exekveringstiden för algoritmer Att lära TESTA och göra rimligehtsbedömningar Att lära sig programmera bättre Att ha roligt Vad handlar kursen om? Vad handlar kursen om? Datastrukturer - en samling av variabler av någon typ som hör ihop på något sätt och löser ett vist typ av problem på bästa sättet. Ex: arrayer, listor, stack, träd, hashtabbel Kända tillämpningar Ex: räknemaskinner, kompilatorer, lexikon, simulatorer, internät och affärssystem applikationer T(n) Algoritmer - metod för att stegvis lösa ett problem Ex. Algoritm för effektiv sökning och sortering av data. Algoritm analys, space and time complexity - hur olika implementationer påverkar exekveringen för en algoritm n Exekveringstiden av en algoritm representeras som funktioner av inputdata 1

Varför? Data stuktureras. Hur? Vilka rörelse krävs? Kurs innehåll och planering Webbsida : http://www.hh.se/db4002 Problem Lösning Java och andra språk Abstraktion Primitiva datatyper Definierade (egna) datatyper Att abstrahera betyder att bortse från oväsentliga detaljer för att istället framhäva det som är relevant eller väsentligt. Vad som framhävs i en abstraktion kan vara olika från fall till fall beroende på i vilket sammanhang abstraktionen skall användas. När vi beskriver en viss del av verkligheten genom att abstrahera får vi en abstrakt modell. 2

Objekt-Orienterad Programmering Objekt och referenser Klasser är modell som beskriver hur objekt ska designas i termer av egenskaper, metoder och konstruerare. Objekt är instance av klassen, dvs konkret data - name - age - other ------------ -kan_sing() -kan_talk() new new name: Bobby age: 12 ------ kan_sing() kan_talk() Name: Koky age: 3 ------ kan_sing() kan_talk() donkey1 name: Bobby age:4 adress donkey2 name: Koky age:12 innehåll 1000 Bobby, 4 1024 Koky, 12 3200 donkey1->1000 3600 donkey2->1024 Vad händer om man gör : donkey2=donkey1? 1000 Objekt och referenser Att jämföra objekt för equality donkey1 name: Bobby age:4 adress donkey2 name: Bobby age:4 innehåll 1000 Bobby, 4 1024 Bobby, 4 3200 donkey1->1000 3600 donkey2->1024 Om två objekt ska kunna jämföras måste de ha en metod som gör detta. Metoden skall heta equals(). class Program public static void main(string[] args) String s1= HBK är bäst ; String s2= AIK är bäst ; System.out.println(s1.equals(s2) ); class Donkey // data och metoder public boolean equals ( Object other)??????????????????????? Vad blir if ( donkey2==donkey1 )? Klassen Object 3

Objektorienterad mekanismen Skapar återanvänbara hierarkier genom följande : Inheritance(Arv) En klass kan ärva från en annan (data och metoder) och utvidga dennes funktionalitet. Interfaces En eller flera tomma metoder som MÅSTE inplementeras av andra klasser för att garantera visa egenskaper för objekten. Skapa supertyper genom arv class Person private String name;... public Person( String n) name=n; public String tostring() return The name is + name; Interface Interface och datatyp I java biblioteket finns interfacen som används för att definiera objekt som kan jämföras och rangordnas public interface public int compareto( Object other ); import java.util.*; class Person implements // andra metoder public int compareto(object obj) Person p=(person) obj; // först casting från Object->Person // kod som jämför 4

Super klass och subklass, super class Student extends Person implements, Serializable Super typ/ Sub typ private int credits; public Student (int c, String n) super(n); credits=c; public String tostring( ) return super.tostring()+ + credits public int compareto (Object other ) // if credits?? Person p1=new Person ( Kale Svensson ); Person Student s1= new Student (0, Tina Kaos ); obj = new Student ( 0, Tina Kaos ); Student Datatypen Object är en generell typ Array av datatypen Object Object Vad blir utskriften? System.out.println(o1.toString()); System.out.println(o2.toString()); Object [ ] array=new Object [7] Donkey Person Object o1= new Person ( Kalle Svensson ); array[1]=new Person(..) Object o2= new Student (0, Anders T ); array[2]=new Donkey(...) Student Object o3= new Donkeyt ( Bobby, 23 ); 5

Datastrukturen array. Varför? Datastrukturen array. Liknar den mest grundläggande databasen. Databas med en tabell. Data i arrayen skall vara av samma typ. När? Alltid mycket information skall lagras och manipuleras. Data i arrayen är lätt att nå Vi deklarerar och skapar array objekt int[ ] creditslist= new int[35]; creditslist 0 0 0 0 0 0 0 0 [0] [1] [2] [3]... [31] [32] [33] [34] index length Datastrukturen array Arrayer som argument till metod original acopy 1 4 6-2 int[] original = 1, 4, 6, -2; int[] acopy = new int[original.lenght]; original acopy Efter tilldelning: acopy = original; 1 4 6-2 class A public static void förvirra( int [ ] a) a[3]=7; a[4]=10; for(int i=0;i<a.length;i++) System.out.println(a[i]); class Program public static void main(string[] args) int [ ] array1=5,6,7,8,3,8,5; A.förvirra(array1); for(int i=0;i<array1.length;i++) System.out.println(array[i]); Detta fungerar inte, vi får två referenser till samma array 6

Interfacens namn blir datatyp, en superdatatyp Klassen Object och Interface är javas sätt att implementera generella typer men... class Donkey impelements obj1=new Donkey(???); obj2=new Person(????); class Person mplements class MyMethods public static void förvirra1( Object obj) System.out.println(obj); public static void förvira2( obj1, obj2) System.out.println(obj1.compareTo(obj2)); Collections En datastruktur är: data (representerad på olika sätt) Metoder Finns i java.util http://java.sun.com/j2se/1.5.0/docs/api/ Collection- generell samling data (objekt) List- ordnad samlig av data Set- ordnad samlig av data som inte får innehålla dubbleter Map- Samling av data i par ( objekt+ nyckel) Queue- samlig data som accesar efter en bestämd ordning 7