Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Relevanta dokument
Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Objektorienterad programmering

Agenda (obs! halvdag)

Objektorienterad programmering

Objektorienterad programmering Föreläsning 5

Agenda. Objektorienterad programmering Föreläsning 13

Objektorienterad programmering

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Objektorienterad programmering Föreläsning 20

Subtyping och variance. Objekt-orienterad programmering och design Alex Gerdes, 2018

JAVAUTVECKLING LEKTION 8

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

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

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

Föreläsning REPETITION & EXTENTA

Lektion 7. Datateknik A, Java I, 5 poäng

TDDC77 Objektorienterad Programmering

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

Problemlösning och funktioner Grundkurs i programmering med Python

Objektorienterad programmering D2

Kursplanering Objektorienterad programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll

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

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

Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Typkonvertering. Java versus C

DAT043 - föreläsning 8

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

Sökning och sortering

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

Generiska klasser och funktioner

Arrayer. results

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

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

Magnus Nielsen, IDA, Linköpings universitet

Föreläsning 11 Datastrukturer (DAT037)

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

JAVAUTVECKLING LEKTION 4

Objektsamlingar i Java

Föreläsning 6: Metoder och fält (arrays)

Indicerade variabler

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

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

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

Objektorienterad programmering Föreläsning 4

Föreläsning 12. Länkade listor

Objektorienterad programmering i Java I

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

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

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

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

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

DELPROV 1 I DATAVETENSKAP

Objektorienterad programmering Föreläsning 2

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

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

Metoder - en funktion: medel

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

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

Generisk klass med typparameter Inre klass - ListIterator

Lösningsförslag: Instuderingsfrågor, del D

Polymorfi. Objektorienterad och komponentbaserad programmering

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.

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

Instuderingsfrågor, del E

Objektorienterad programmering med Java, Generics

Innehållsförteckning

Föreläsning 6: Introduktion av listor

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

SMD 134 Objektorienterad programmering

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

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

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

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

Föreläsning 5: Introduktion av pekare

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

Teoretisk del. Facit Tentamen TDDC (6)

PROGRAMMERINGSTEKNIK TIN212

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Tentamen, EDAA20/EDA501 Programmering

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Algoritmer. Två gränssnitt

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Sökning och sortering. Linda Mannila

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

Transkript:

Objektorienterad programmering Föreläsning 10 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Fält fort. Fält som parametrar Parameterfält params Parametrar till Main Listor ArrayList Sorteringsalgoritmer Selection sort (sök minsta och byt) Bubble sort (bubbelsortering) Copyright 2015 -Mahmud Al Hakim www.webacademy.se 2 1

Fält som parametrar Copyright 2015 -Mahmud Al Hakim www.webacademy.se 3 Parameterfält - params Med hjälp av parameterfält (parameter array) kan man konstruera metoder som kan anropas med ett variabelt antal argument. I deklarationen av metoden skriver man det reserverade ordet params. Ordet params anger att man vid anrop av metoden som argument kan ge ett godtyckligt antal enkla värden. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 4 2

Params Exempel Du kan ge ett godtyckligt antal enkla värden vid anrop av metoden Copyright 2015 -Mahmud Al Hakim www.webacademy.se 5 Parametrar till Main Ett C# program måste ha en metod Main i vilken exekveringen börjar. Main kan ha en parameter av typen string[ ] Parametern är alltså en fältvariabel som refererar till ett fält där komponenterna är av typen string. Metoden Main anropas inte inifrån programmet utan från kommandotolken när programexekveringen startas. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 6 3

Parametrar till Main - Exempel Copyright 2015 -Mahmud Al Hakim www.webacademy.se 7 Ange parametrar till Main i VS OBS! MainTest är namnet på projektet Copyright 2015 -Mahmud Al Hakim www.webacademy.se 8 4

Listor I namnrymden System.Collection.Generic finns en mycket användbar standardklass med namnet List. List är en s.k. generisk klass (mer om detta senare). Med hjälp av denna kan man bygga upp listor som innehåller ett godtyckligt antal komponenter. Komponenterna brukar kallas element. Att skapa en tom lista: List<typ> lista = new List<typ>(); Exempel List<string> lista = new List<string >(); Copyright 2015 -Mahmud Al Hakim www.webacademy.se 9 Skapa en kopia av ett fält eller en lista Copyright 2015 -Mahmud Al Hakim www.webacademy.se 10 5

Att hantera listor Några exempel Copyright 2015 -Mahmud Al Hakim www.webacademy.se 11 ArrayList I namnrymden System.Collections finns en gammal standardklass med namnet ArrayList. När man skapar en lista av typen ArrayList kan man inte ange vilken typ elementen skall ha. Att skapa en ArrayList ArrayList lista = new ArrayList(); Listor av detta slag kan innehålla element av vilken referenstyp som helt. Man kan i samma lista ha element av olika slag! Elementen i listan blir referenser av typen object. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 12 6

ArrayList ArrayList användes innan de generiska klasserna fanns (innan version.net 2.0) Använd om möjligt de generiska varianterna då de är säkrare. Copyright 2015 -Mahmud Al Hakim www.webacademy.se 13 Selection sort (sök minsta och byt) Algoritmen går ut på att man först letar reda på det minsta talet i fältet och placerar det på fältets första plats. Därefter letar man reda på det näst minsta talet och placerar det på fältets andra plats. Osv Copyright 2015 -Mahmud Al Hakim www.webacademy.se 14 7

Selection sort Selection sort Pseudokod* 1. Sätt k till index för fältets första komponent. 2. Medan k är mindre än eller lika med index för fältets sista komponent: 2.1. Leta reda på det minsta talet i den del av fältet som börjar med tal nummer k och som slutar med det sista talet i fältet. 2.2. Låt det mista talet (från steg 2.1) och tal nummer k byta plats. 2.3. Öka k med 1 * Tips: http://sv.wikipedia.org/wiki/pseudokod Copyright 2015 -Mahmud Al Hakim www.webacademy.se 15 Copyright 2015 -Mahmud Al Hakim www.webacademy.se 16 8

Bubble sort Bubble sort (bubbelsortering) Metoden går ut på att man upprepade gånger går igenom det område i listan som ska sorteras och gör parvis jämförelser av intilliggande element. När två intilliggande element ligger i fel ordning byter man plats på dem. Varje gång man gått igenom ett område kommer det sista talet att ha hamnat på rätt plats. Nästa gång reducerar man därför det område man går igenom med ett. Efter hand som man gör sorteringen kommer listan i botten bli alltmer korrekt och de överblivna talen "bubblar" uppåt, därav namnet på sorteringsalgoritmen. Källa: http://sv.wikipedia.org/wiki/bubbelsortering Copyright 2015 -Mahmud Al Hakim www.webacademy.se 17 Vilken sorteringsalgoritm är bäst? Tips! http://www.sorting-algorithms.com/random-initial-order https://www.youtube.com/watch?v=lyzqpjut5b4 Copyright 2015 -Mahmud Al Hakim www.webacademy.se 18 9