2D1311 Programmeringsteknik med PBL

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Funktioner och programorganisation
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
Prolog, Mån 16/9 Rebecca Jonson.
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.
För utveckling av verksamhet, produkter och livskvalitet. Rekursiva algoritmer, en annan sort tänkande -Hur -När -Bra/Dåligt (kap 7)
Logikprogrammering Ons, 25/9
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
Vilken/vilka av följande satser ger syntaxfel:
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL
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.
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.
Grundläggande programmering
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.
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Föreläsning 11 Arrayer.
Vektorer (klassen Vector) Sortering
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.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
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 10 Stränghantering.
Funktioner Linda Mannila Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
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]
Rekursion. En metoddefinition som innehåller ett anrop av sig själv kallas rekursiv.
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Planering av ett större program - Funktioner, moduler, if och Boolean Linda Mannila
2D1311 Programmeringsteknik med PBL Föreläsning 1 Skolan för Datavetenskap och kommunikation.
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 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Föreläsning 8 Mer om klasser och objektorientering.
Anders Sjögren Deklarationsområde och funktioner.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
Programmeringsteknik
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
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.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 13 programmeringsteknik och Matlab Funktioner, styrstrukturer, mer om matriser.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Anders Sjögren Funktioner något in och något annat ut.
KPP053, HT2015 MATLAB, Föreläsning 4
Föreläsning 3 Programmeringsteknik
Presentationens avskrift:

2D1311 Programmeringsteknik med PBL Skolan för Datavetenskap och kommunikation 2D1311 Programmeringsteknik med PBL Föreläsning 3

Kapitel 5 & 6 Listor Uppslagslistor Funktioner Parametrar Namnrymden

Listor Listor liknar tupler, men är flottare: Skrivs med hakparenteser: blommor=["ros","fiol","pion"] Går att ändra (muterbara): blommor[1]="viol" Har metoder: blommor.sort()

Listmetoder Metod Beskrivning append(x) Lägger till x sist i listan. sort() Sorterar i stigande ordning. reverse() Vänder listan. count(x) Räknar antalet x i listan. index(x) Första förekomsten av x i listan. insert(i,x) Stoppar in x på plats i. pop([i]) Plockar ut elementet på plats i. remove(x) Tar bort första förekomsten av x.

Läsa in till en lista # Frågar efter ord som rimmar och läser # in i en lista, som sedan skrivs ut sorterad. lista=[] ord=raw_input("Vad rimmar på hus? ") while ord!="": lista.append(ord) ord=raw_input("Kan du ett till? ") print "Du hittade", len(lista),"ord!" lista.sort() print lista

Uppgift: Rita steg för steg vad som händer i rimordsprogrammet!

Matriser Genom att nästla listor kan man skapa en matris: [1, 2, 3] >>> matris[0][2] 3

Uppslagslistor En uppslagslista lagrar datapar. Varje datapar har en nyckel och ett värde. Nycklarna måste vara unika och omuterbara. Runt uppslagslistan används klamrar {}. En uppslagslista har inte ordning! uppslagslista=dictionary

Använda en uppslagslista # Kollar saldo på bankkontot konton={"Mart":25045,"Fuad":20000,"Hanna":38000} namn=raw_input("Namn: ") if namn in konton: print "Ditt saldo:",konton[namn] else: print "Tyvärr, du har inget konto."

Uppgift: Föreslå något som man kan använda en uppslagslista till!

Reklam för funktioner Gör programmet mer överskådligt och lättläst. Enklare att testa delarna var för sig. Man slipper skriva om samma satser på flera ställen. Kan återanvändas i nästa program!

Några kända funktioner Indata (parametrar) Utdata (returvärde) ut=input("Gissa:") strängen "Gissa" den inlästa gissningen ut=str(bredd) talet i variabeln bredd talet som sträng ut=len("kålrot") strängen "kålrot" antal tecken i strängen ut=range(0,100,2) startvärde 0, övre gräns 100, steg 2 en lista med tal

Hur funktioner fungerar Funktionen anropas. Indata skickas in via parametrar, utdata returneras. Programmet fortsätter efter anropet. indata utdata funktion

Uppgift: Du vill skriva en funktion som avgör om en låneansökan ska beviljas. - Vad är indata (parametrar)? - Vad är utdata (returvärden)?

Hur man definierar en funktion Skriv först def funktionsnamn(parametrar): Sen, indenterat: En kommentarrad som beskriver vad funktionen gör, inom tredubbla citationstecken, tex """Beräknar arean""". Satserna som funktionen ska utföra. Allra sist return returvärde/returvärden Anger man inget returvärde blir det None

Exempel från Tic-tac-toe i kap 6 Funktionen definieras så här: def ask_number(question, low, high): """Ask for a number within a range.""" response = None while response not in range(low, high): response = input(question) return response returvärde question low high Funktionen anropas så här: move = ask_number("Your move? (0 - 8):", 0 , 8 )

Namnrymder Varje gång en funktion anropas skapas en namnrymd för just det anropet. Parametrar och variabler som skapas inuti funktionen blir lokala (finns bara i funktionen). Man kan också komma åt globala variabler, som skapats utanför funktionen, men inte ändra på dom.

Namnrymdsexempel Konstanterna DIFF och FAKTOR är globala och def celsius(f): """Konverterar fahrenheit till celsius""" c = (f-DIFF)*FAKTOR return c print "13 Fahrenheit blir ",celsius(13),"C." Konstanterna DIFF och FAKTOR är globala och finns i hela programmet. Parametern f och variabeln c är lokala och finns bara inuti funktionen celsius.

Rekursion Fakultet kan definieras rekursivt: n! = (n-1)! *n En rekursiv funktion i Python har: Ett anrop av funktionen själv inuti funktionsdefinitionen. Ett basfall som inte är rekursivt. En if-sats som väljer mellan basfallet och det rekursiva anropet.

Rekursivt exempel def f(n): """Rekursiv fakultetsfunktion""" if n>1: return f(n-1)*n else: return 1

Uppgift: Vad skriver följande rekursiva funktion ut, om den anropas med rek(1) ? def rek(x): if x<4: print x rek(x+1) print x, "igen!"