Föreläsning 9 Sökning, sortering, grafiska gränssnitt (GUI)

Slides:



Advertisements
Liknande presentationer
Händelsehantering i grafiska gränssnitt byggda med Tkinter
Advertisements

Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
2D1311 Programmeringsteknik med PBL
Algoritmer och data strukturer -Länkade listor
Programmeringsteknik
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Repetition inför provet
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
P-uppgiften: regler, planering och specifikation
OOP Objekt-orienterad programmering
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Föreläsning 4 Python: mera om funktioner och parametrar
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 7 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 1 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Föreläsning 9 Sökning, sortering, grafikprogrammering.
Arv.
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
1 Föreläsning 3 Datalogi för E1 / 2D1343 Repetition List List operationer Stränghantering For-slingor.
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 8 Grafik AWT. 2 Grafik Frame använder man för att skapa ett fönster Button använder man om man vill ha en knapp att trycka på Canvas är.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmeringsteknik
Vektorer (klassen Vector) Sortering
Programmeringsteknik för Media1 & K1
Listor En lista är en föränderlig ordnad samling objekt.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 2 Skolan för Datavetenskap och kommunikation.
Namnrum, räckvidd och rekursion Linda Mannila
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
2D1311 Programmeringsteknik med PBL Föreläsning 1 Skolan för Datavetenskap och kommunikation.
1 Föreläsning 11 Grafisk användargränssnitt med Tkinter.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
Programmeringsteknik Föreläsning 17 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
1 Föreläsning 8 Mer om klasser och objektorientering.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Programmeringsteknik
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
DA7351 Programmering 1 Fält och objekt Tvådimensionella fält Sortera fält Föreläsning 13.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Föreläsning 3 Programmeringsteknik
Grafisk användargränssnitt med Tkinter
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Föreläsning 9 Sökning, sortering, grafiska gränssnitt (GUI)

Schemaändringar Tisdag 10 april: –Ingen föreläsning 8-10 –Labb –Labb Tisdag 17 april –Labb –Föreläsning i sal E1

Vitaminexempel

Vitaminklassen class Vitamin(object): """Representerar en sorts vitaminer""" def __init__(self, namn, c, selen): """Konstruktorn""" self.c = c self.selen = selen self.namn = namn def __str__(self): """För utskrift""" return self.namn + "\n C-vitamin: " + str(self.c) + "\n Selen: " + str(self.selen)

Vitaminer i lista # Skapa tre Vitamin-Objekt v1 = Vitamin("Plexivital",120,20) v2 = Vitamin("Multitab",400,7) v3 = Vitamin("Sjuomdan",10,1) # Lägg objekten i en lista lista = [v1,v2,v3]

Algoritm för sökning 1.Skapa en tom funna-lista för alla träffar. 2.Gå igenom varje element i vitamin-listan –Om elementet är det sökta: Lägg till vitaminen till funna-listan 3.Efteråt har man en funna-lista med alla träffar.

Funktion för sökning def sok(x,lista): """Söker efter objekt som heter x """ funna = [] for v in lista: if v.namn == x: funna.append(v) return funna

Testa sökfunktionen funna = sok("Sjuomdan",lista) for v in funna: print v

Sortering Python-listor har en inbyggd sort-metod: –lista.sort() Men om man har en lista av objekt - vilket attribut sorterar sort() på då? Och tänk om man vill sortera på olika attribut, t ex först på c-vitamin-innehåll och sedan på selen-innehåll?

Lägg till get-metoder i klassen def get_c(self): """Ger C-vitamin-innehåll""" return self.c def get_selen(self): """Ger selen-innehåll""" return self.selen def get_namn(self): """Ger namnet""" return self.namn

Sort med key Nu kan sort anropas med parametern key satt till get-metoden för det vi vill sortera på! lista.sort(key=Vitamin.get_c)

Grafiskt användargränssnitt (GUI) Använd modulen Tkinter, som har klasser för komponenter. Se "Referenser" på kursens webbsida: GUI-länkar. ButtonMenu CanvasMenubutton CheckbuttonMessage EntryRadiobutton FrameScale LabelScrollbar ListboxText

Hur gör man? from Tkinter import * roten = Tk() knapp = Button(roten, text="Tryck") knapp.grid() roten.mainloop() Hämtar alla klasser i modulen Tkinter. Knappen placeras. Button-konstruktorn - skapar en knapp. Tk-konstruktorn - skapar rotfönstret. Startar en slinga som väntar på inmatning från användaren.

Komponenter Varje komponent har en konstruktor med många defaultparametrar. Anropa bara med det som behövs: knapp = Button(roten,text="Tryck") Efter att komponenten skapats kan attributen också ändras: knapp["text"] = "Tryck inte"

Layout Komponenter har metoder som styr hur de ska placeras i fönstret. Enklast är att använda pack: knapp.pack() Bättre kontroll fås med grid: knapp.grid(row=4, column=3) Rita först en skiss över hur det ska se ut!

Rubrik Person: Sak: Verb: Adjektiv: Kroppsdel: Skriv saga

Variabler Ett attribut som alla komponenter har är variable. Om man i förväg skapat ett variabelobjekt: str = StringVar() så kan man koppla ihop variabel och komponent med knapp["variable"] = str Metoden get hämtar data från en variabel.

Anropa metod Ett annat attribut som alla komponenter har är command. Där anger man vilken metod/funktion som ska anropas när komponenten används. Om vi skriver en funktion addera() som ska anropas när nån trycker på knapp så kopplar vi ihop metod med knapp så här: knapp["command"] = addera