DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

2D1311 Programmeringsteknik med PBL
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.
Fortsättningskurs i Programmering lektion 6
Logikprogrammering Ons, 25/9
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
OOP Objekt-orienterad programmering
2D1311 Programmeringsteknik med PBL
Några standardalgoritmer
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Metoder i java Det finns två typer av metoder i java
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 4 Skolan för Datavetenskap och kommunikation.
Föreläsning 9 Sökning, sortering, grafikprogrammering.
Programmeringsteknik för 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 2 Datalogi för E1 2D1343
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 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Programmering B PHP Lektion 2
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Föreläsning 11 Arrayer.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
Programmering i C# 3. Klasser.
Klasser och objekt Klasser, objekt och instansvariabler
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmeringsteknik
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Listor En lista är en föränderlig ordnad samling objekt.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 2 Skolan för Datavetenskap och kommunikation.
Namnrum, räckvidd och rekursion Linda Mannila
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Listor, tupler, och for-loopar. Listor En lista är en föränderlig ordnad samling objekt. Listor skapas med hakparenteser. lista = [12,13,14,15]
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
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.
Programmeringsteknik Föreläsning 17 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
1 Föreläsning 8 Mer om klasser och objektorientering.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
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
1 Övning6 Läsning från fil till java objekt Sökning Sortering.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
Föreläsning 9 Sökning, sortering, grafiska gränssnitt (GUI)
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.
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation

I DAG :  Läsa från fil  Referenser  Metoder som tar ett annat objekt som parameter  Defaultparametrar  Nästlade for-slingor

KLASSEN T ENTA Attribut Metoder __bonus __poäng __totalpoäng __betyg __init__() __str__() __lt__() visa() poängsumma() beräknaTotalpoäng() beräknaBetyg()

L ÄSA FRÅN FIL tentorna = [] for rad in infil: lista = rad.split("/") bonus = int(lista[0]) stränglista = lista[1] poänglista = str2int(stränglista) t = Tenta(bonus, poänglista) tentorna.append(t) 0 / / / / / / / / / / / Inläsningen måste anpassas till raderna i filen. Här står bonuspoängen först på raden, följt av "/", och därefter poängen på de åtta tentauppgifterna.

J ÄMFÖRA MED ETT ANNAT OBJEKT def __lt__(self, other): if self.__totalpoäng < other.__totalpoäng: return True else: return False Om vi definierar metoden __lt__ kan vi jämföra objekt med varandra. Två parametrar: self och other, där self är det anropande objektet och other parametern. Listans sort() anropar __lt__ automatiskt!

S ORTERA TENTORNA print("Före sortering") visaTentor(tentorna) tentorna.sort() print("\nEfter sortering") visaTentor(tentorna)

R EFERENSER En listvariabel är en referens till listan, vilket innebär att tilldelning inte ger en kopia... dagar =["tisdag","onsdag","fredag"] vecka = dagar vecka[0] = "måndag" print(vecka) print(dagar) måndag onsdag fredag vecka dagar

V AD SKRIVS UT EFTER FÖLJANDE SATSER ? sorterat = tentorna sorterat.sort() visaTentor(tentorna) visaTentor(sorterat) osorterat, sen sorterat efter totalpoäng osorterat, sen sorterat efter betyg 2 ggr sorterat efter totalpoäng 2 ggr sorterat efter betyg

K ONTAKT  Vi definierar en kontakt-metod som returnerar True om djur1 och djur2 får kontakt.  Exempel: djur1.kontakt(djur2)  Tänk kontakt(djur1, djur2)

D EFAULTPARAMETRAR def __init__(self, namn1="", namn2=""):  När en funktion/metod definieras kan man ge parametrar defaultvärden.  Om parametern utelämnas vid anropet är det defaultvärdet som används. Exempel: pappa = Husdjur() barn = Husdjur("Conny","Busse")  Parametrar utan defaultvärde ska stå först i parameterlistan.

KLASSEN H USDJUR Attribut Metoder __namnet __glad __hunger __kon __preferens __init__() namn() bytaNamn() kontakt() __str__() banna() mata() leka() avsked()

KLASSEN B UR Attribut Metoder __lista__init__() banna() mata() leka() mingel() visa() avsked()

def kontakt(self, kompis): """Testar om kontakt uppstår mellan detta husdjur (self) och kompis""" if (self.__kön == kompis.__kön): if (self.__preferens == "samma") and\ (kompis.__preferens == "samma"): print("Puss!") return True elif (self.__kön != kompis.__kön): if (self.__preferens == "annat") and\ (kompis.__preferens == "annat"): print("Puss!") return True else : return False

N ÄSTLADE FOR - SLINGOR Om man lägger en for-slinga inuti en annan säger vi att slingorna är nästlade. Den inre slingan går då igenom alla sina värden för varje värde i den yttre slingan. Exempel: for i in range(3): for j in range(3): print(i,j)

n = len(lista) for i in range(n-1): jag = lista[i] for j in range(i+1,n): du = lista[j] if jag.kontakt(du): lista.append(Husdjur(jag.namn(),du.namn())) djur 0 & djur 1djur 0 & djur 2djur 0 & djur 3 djur 1 & djur 2djur 1 & djur 3 djur 2 & djur 3 Mingel