Programmeringsteknik
description
Transcript of Programmeringsteknik
![Page 1: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/1.jpg)
Programmeringsteknik
Föreläsning 2
Skolan för Datavetenskap och kommunikation
![Page 2: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/2.jpg)
Funktioner (kap 6)
• Kap 6 i Dawson (och resten av kap 3)
• Funktioner du redan använt
• Anropa funktioner
• Definiera egna funktioner
• Parameter & returvärde
• While-slingan
![Page 3: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/3.jpg)
Funktioner du redan använtFunktion Indata
(parametrar)Utdata
(returvärde)
svar=input("Gissa:") strängen "Gissa" den inlästa gissningen
print(17) talet 17 None (inget)
from math import *
x=0.14
tal=sin(x)
värdet 0.14 i variabeln x
Det beräknade värdet av sin(0.14)
antal=len("kålrot") strängen "kålrot" 6 (antal tecken i strängen)
![Page 4: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/4.jpg)
Anropa funktioner• Så här ser anrop ut: utdata = funktion(indata)
• Indata skickas in via parametrar till funktionen
• Utdata returneras via return-sats ur funktionen
• Programmet fortsätter efter anropet
kålrot 6
Indata Utdata
![Page 5: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/5.jpg)
Reklam för funktionerReklam för funktionerGö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!
![Page 6: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/6.jpg)
Hur man definierar en funktion
• Funktioner definieras överst i programmet!• 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
![Page 7: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/7.jpg)
Parameter & returvärde
def ränta(pengar): """Beräknar och returnerar räntan.""" if pengar > 100000: r = pengar*0.75/100 else: r = pengar*0.40/100 return r
vinst = ränta(saldo)
Funktionen anropas så här:
Funktionen definieras så här:
parameter pengarreturvärde r
![Page 8: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/8.jpg)
Flera parametrar/returvärden
def ränta(pengar, extra): """Beräknar och returnerar räntan.""" if pengar > 100000: r = pengar*0.75/100
rx = extra*0.5 else: r = pengar*0.40/100
rx = extra*0.4 return r,rx
vinst = ränta(saldo, 1000)
![Page 9: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/9.jpg)
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)?
![Page 10: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/10.jpg)
while-slingan
• En while-slinga upprepar ett antal satser så länge som ett villkor är uppfyllt.
• Så länge som kannan inte rinner över:– Fyll på mer vatten!
• Så länge som du inte har somnat: – Räkna ett får till!
• Så länge som du inte gissat rätt tal:– Gissa en gång till!
![Page 11: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/11.jpg)
Ett exempel
kanna = 0
while kanna < 1.5:
kanna = kanna + 0.2
![Page 12: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/12.jpg)
Oändlig slinga
• Om villkoret aldrig uppfylls får man en slinga som upprepas i all oändlighet.
• Kan yttra sig som att programmet "hänger sig" - inget händer
• Eller att massor av text rusar förbi på skärmen (om man har utskrift i slingan).
• Avbryt programmet genom att trycka Ctrl-C (Ctrl och C samtidigt).
![Page 13: Programmeringsteknik](https://reader035.fdocument.pub/reader035/viewer/2022062408/56813c01550346895da55d20/html5/thumbnails/13.jpg)
Läxa
• Till nästa labb ska ni skriva en funktion. För instruktioner, se Övningen i schemat på KTH Social!