Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.

Slides:



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

Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Funktioner och programorganisation
2D1311 Programmeringsteknik med PBL
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Repetition inför provet
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Föreläsning 4 Python: mera om funktioner och parametrar
2D1311 Programmeringsteknik med PBL Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Metoder.
Föreläsning 12 Matlab J-uppgiften.
Välkommen Vahid Mosavat
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.
Programkodens uppbyggnad
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Programmering B PHP Lektion 2
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Pekare och speciell programstruktur i inbyggda system
Klasser och objekt Klasser, objekt och instansvariabler
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
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.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder 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
Funktioner Linda Mannila Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
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. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
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
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Anders Sjögren Deklarationsområde och funktioner.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
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.
Anders Sjögren Enkelt program med funktion /* two_func.c - a program that uses two functions in one file */ /* from Stephen Prata C Primer Plus ISBN
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 2 Programmeringsteknik DD1310
Presentationens avskrift:

Föreläsning 6 Programmeringsteknik och Matlab DD1315 Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None Vahid Mosavat, Nada, KTH

Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH

Exempel meny() definition anrop def meny(): print(”””1. Spela 2. Visa spelregler 3. Avsluta Välj:”””,end=””) definition meny() anrop 2/20 Vahid Mosavat, Nada, KTH

Syntax för funktion def funktionensnamn( ): parametrar def funktionensnamn( ): Kod som ska exekveras när funktionen anropas Indragning är viktigt! 3/20 Vahid Mosavat, Nada, KTH

Funktioner Används för att dela upp ett program i lätthanterliga och återanvändbara delar En funktion tar oftast indata och ger utdata, men en funktion kan även utföra operationer Man kan undvika upprepning av kod genom att använda egna funktioner och parametrar Med hjälp av egna funktioner inför man abstraktion i sitt program 4/20 Vahid Mosavat, Nada, KTH

Parametrar En funktion med parametrar har större användningsområde än en funktion utan parametrar. Varför? Vilken av följande har större användningsområde? def calc(): print(2*3+3) calc() def calc(a,b): print(a*b+b) calc(2 , 3) 5/20 Vahid Mosavat, Nada, KTH

return En funktion med parametrar som returnerar ett värde har ännu större användningsområde. def calc(a,b): print(a*b+b) calc(2,3) def calc(a,b): return a*b+b svar=calc(2,3) print(svar) 6/20 Vahid Mosavat, Nada, KTH

parametrar, return och None Indata skickas till funktioner via funktionens parametrar. Funktioner returnerar utdata med hjälp av return-satsen. Om en funktion inte har return-sats i kroppen kommer då funktionen att returnera None. (None vilket betyder ingenting i python) 7/20 Vahid Mosavat, Nada, KTH

Exempel def calc(a,b): c = a*b + b return c m=calc(2 , 3) Variabeln m kommer att få värdet 9 vilket är av typen integer Variabeln m kommer att få värdet None 8/20 Vahid Mosavat, Nada, KTH

Exempel def comp(a,b): return a > b m=comp(2 , 3) def calc(a,b): c = a*b + b return c m=calc(2 ,3.0) def comp(a,b): return a > b m=comp(2 , 3) Variabeln m kommer att få värdet 9.0 vilket är av typen float Variabeln m kommer att få värdet False vilket är boolean 9/20 Vahid Mosavat, Nada, KTH

Program f1() f2() f3() utdata indata 10/20 Vahid Mosavat, Nada, KTH

Exekverings- och logiskt fel Exekverings fel: det är ett fel som gör att programmet kraschar innan det hinner att avslutas Logiskt fel: det är då programmet avslutas men felaktig utdata kommer ut. (denna typ av fel är svårast att spåra) 11/20 Vahid Mosavat, Nada, KTH

Logiskt fel brud brudgummen 12/20 Vahid Mosavat, Nada, KTH

Logiskt fel brud brudgummen 12/20 Vahid Mosavat, Nada, KTH

Exempel på logiskt fel Vilket av följande anrop är fel? BMI(1.70,65) def BMI( height , weight): return weight/(height*height) Vilket av följande anrop är fel? BMI(1.70,65) 22.49 BMI(65,1.70) 0.000402 13/20 Vahid Mosavat, Nada, KTH

Globala och lokala variabler En variabel kan antingen vara global eller lokal, kan alltså inte vara både samtidigt: Globala variabler: är variabler som lever tills programmet avslutas: Globala variabler definieras med nyckelordet global Lokalvariabel: är variabler som oftast lever en kort stund. Formella parameter Lokala variabler som skapas i funktioner Lokala variabler är känd endast i funktionen och har kortare livslängd än globala variabler 14/20 Vahid Mosavat, Nada, KTH

Följande kod är korrekt: Exempel Följande kod är korrekt: def change(): global x x = x/2 x = 10 print(x) change() Följande kod ger fel: def change(): x = x/2 x=10 change() 15/20 Vahid Mosavat, Nada, KTH

Exempel Följande kod ger fel: Följande kod är rätt: def change(x): global x x = x/2 Följande kod är rätt: def change(x): x = x/2 x=10 print(x) change(x) 16/20 Vahid Mosavat, Nada, KTH

Default-parametrar Vid definition av en funktion kan man ge formella parametrar ett default-värde. De parametrar som får ett default-värde kallas för default-parametrar. Anropsparametrar till en funktion med default-parametrar kan försummas. Funktionen använder sig av default-parametrars värde endast när anropsparametrar utelämnas vid anropet. Om man vill blanda default-parametrar med vanliga default-parametrar måste man se till att default-parametrar kommer senare i definitionen. 17/20 Vahid Mosavat, Nada, KTH

Vilket av följande är fel? def correction(penColor=”röd”,type): print(type+” har rättats med” + penColor+” penna”) def correction(type,penColor=”röd”): print(type+” har rättats med”+ penColor+” penna”) 18/20 Vahid Mosavat, Nada, KTH

Exempel def correction(penColor=”röd”): print (”Tentamen har rättats med ” +penColor+” penna”) Kan anropas på följande sätt: utan anropsparameter : correction() med anropsparameter: correction(”svart”) 19/20 Vahid Mosavat, Nada, KTH

Sammanfattning Genom att deklarera egna funktioner inför man abstraktion i sitt program, vilket gör att programmet blir lättare att läsa och förstå, dessutom koden blir mer överskådlig Man kan undvika kod upprepning genom att deklarera egna funktioner Se till att dina funktioner är fristående och självständiga Beroende mellan funktioner gör det svårt att modifiera programmet Undvik att använda globala variabler 20/20 Vahid Mosavat, Nada, KTH