Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Relevanta dokument
Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Uppgifter teknik HT17 (uppdaterad v. 40)

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Grundläggande datalogi - Övning 1

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Användarhandledning Version 1.2

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Tentamen i Introduktion till programmering

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

729G04 Programmering och diskret matematik. Python 3: Loopar

Föreläsning 2 Programmeringsteknik och C DD1316

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

DD1314 Programmeringsteknik

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Planering av ett större program, del 2 - for och listor. Linda Mannila

Språket Python - Del 1 Grundkurs i programmering med Python

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Visual Basic, en snabbgenomgång

Funktioner. Linda Mannila

Inledande programmering med C# (1DV402) Summera med while"-satsen

729G04 Programmering och diskret matematik

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

729G04 Programmering och diskret matematik. Föreläsning 7

Extramaterial till Matematik Y

Laboration: Whitebox- och blackboxtesting

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Övningsuppgifter kapitel 8

Ordlistor, filhantering och ut på webben. Linda Mannila

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Beräkningsvetenskap föreläsning 2

v. 42 Python HT17 En introduktion Oscar Bergqvist

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Tentamen Grundläggande programmering

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Programmeringsteknik med C och Matlab

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Datalogi, grundkurs 1

v. 43 Python HT17 En introduktion Oscar Bergqvist

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

TDP002 - Imperativ programmering

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Tenta i Grundläggande programmering DD klockan

Använda Python Laboration 1 GruDat, DD1344

Pythons standardbibliotek

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Introduktion till programmering SMD180. Föreläsning 8: Listor

TDDE44 Programmering, grundkurs

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Datalogi för E Övning 3

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

TDDE44 Programmering, grundkurs

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering och Python Grundkurs i programmering med Python

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

Sätt att skriva ut binärträd

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

TDP002 Imperativ programmering

TDDC77 Objektorienterad Programmering

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

Kort om programmering i Python

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs Verónica Gaspes. IDE-sektionen.

Erfarenheter från labben

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Att skriva till och läsa från terminalfönstret

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Grundläggande databehandling ht 2005

TDP002 - Imperativ programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Föreläsning 3-4 Innehåll

729G04 Programmering och diskret matematik

Objektorienterad programmering i Java

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

729G04 Programmering och diskret matematik. Föreläsning 5

F4. programmeringsteknik och Matlab

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Transkript:

Programmering I Tobias Wrigstad tobias@dsv.su.se

Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals, branching) Loopar Trivial input och output Arrayer och selektion Funktioner och rekursion

Assembler

C

Java

Python

Javakod Motsvarande bytekod int x = 1; int y = 20; int z = x + y; iconst_1 istore_1 bipush 20 istore_2 iload_1 iload_2 iadd istore_3

Superviktigt! Nytt i Python 3.0 print är numer en funktion, d.v.s. man måste skriva print( Hej ) eller print(1+2) eller print(alder) print Hej är deprecated Python 2.5 och över gäller fortfarande, men se till att använda samma version om ni jobbar i par!

Superviktigt! Nytt i Python 3.0 raw_input har ändrats till input Med andra ord skriver vi namn = input("skriv in ditt namn: "), istället för namn = raw_input("skriv in ditt namn: ")

Input/ Output Decision Start/Stop Sequence

Vad gör detta program?

Tentan kommer att ha en likvärdig uppgift

Trivial Input och Output i Python Python 2.5 Läs in text med x = raw_input("skriv in något! ") Skriv ut text med print x Python 3.0 Läs in text med x = input("skriv in något! ") Skriv ut text med print(x)

Datatyper I programmering skiljer man normalt mellan olika slags värden, t.ex. Strängar (text) Heltal (1, 2, 3, 4, 5, 6 ) Flyttal (1.00001, 3.14, 234.7283201, 1.0) Booleska värden (True eller False) Listor med flera värden, t.ex. [1,2,3] eller [7, False, "Hej"] Vissa operationer fungerar bara på vissa datatyper, t.ex., är det inte vettigt att göra 1 + "Hej" eller 44 > True eller "Tjoho" - 23

Variabler i Python En variabel är ett namn i programmet som motsvarar en plats i datorns minne Att tilldela (=) till en variabel sparar ett värde på den platsen i minne (och skriver över det gamla värdet) Alla variabler tas bort när en program avslutas Olika programmeringsspråk behandlar variabler på olika sätt

a = 1 # Tilldelar värdet 1 till variabeln a print a # Hämtar värdet ur a och skriver ut det print a + 2 # Hämtar värdet ur a, adderar 2 och skriver ut resultatet print a # a har fortfarande värdet 1 a = 2 print a print a + 2 name = "Tobias" print "Hej", name # skriver ut Hej Tobias på skärmen Python 2.5!

a = 1 # Tilldelar värdet 1 till variabeln a print(a) # Hämtar värdet ur a och skriver ut det print(a + 2) # Hämtar värdet ur a, adderar 2 och skriver ut resultatet print(a) # a har fortfarande värdet 1 a = 2 print(a) print(a + 2) name = "Tobias" print("hej", name) # skriver ut Hej Tobias på skärmen Python 3!

Booleska värden True och False Resultatet av jämförelser (t.ex. < och >) är alltid True eller False Boolesk algebra är ett sätt att utföra operationer på booleska värden and or not

result1 = 3 < 5 print result1 result2 = 5 < 3 print result2 print True and False print True and True print False and True print False and False print 3 < 5 and 5 > 3 Python 2.5! (För Python 3 och uppåt, använd print(result1) etc.) print True or False print True or True print False or True print False or False print 3 < 5 or 5 > 3 print not False print not True

Kontrollstrukturer Styr programmets exekvering med hjälp av villkor om ett villkor är uppfyllt gör si, annars gör så Start/Stop Read this slide You understand it True Go to next slide False

Python 2.5! a = raw_input("mata in ett tal: ") b = raw_input("mata in ett till tal: ") if a < b: print a, "är det minsta talet" else: if b < a: print b, "är det minsta talet" else: print "Talen är lika stora"

Python 3! a = input("mata in ett tal: ") b = input("mata in ett till tal: ") if a < b: print(a, "är det minsta talet") else: if b < a: print(b, "är det minsta talet") else: print("talen är lika stora") (Överkurs för dig som kan programmera: man kan skriva "if a < b: elif a > b: else: " för att slippa nästade if-satser.)

Ekvivalens == == är motsvarigheten till = i matematiken Ex.: 1 == 2 är falskt, men 2 == 2 är sant!=!= är motsvarigheten till i matematiken Ex.: 1!= 2 är sant men 2!= 2 är falskt <> <> är samma som!= Om man skriver = när man menar == får man en bugg som i regel är svår att hitta! (Varför???)

Python 2.5! a = "Tobias" b = "Henrik" if a == "Tobias": print "Intro DV" # print("intro DV") i Python 3 if b == "Henrik": print "ITP" # print("itp") i Python 3

Python 2.5! currentuser = "Tobias" action = "View exam" if action == "View exam": if currentuser!= "Tobias": print "Not allowed" else: print "Fråga 1: Ge ett exempel på en if-sats..."

Python 3! currentuser = "Tobias" action = "View exam" if action == "View exam": if currentuser!= "Tobias": print("not allowed") else: print("fråga 1: Ge ett exempel på en if-sats...")

Loopar En loop är ett kommando som utför en eller flera andra kommandon en eller flera gånger i följd De kommandon som skall utföras kallas för kroppen (the loop body) Python har två loop-konstruktioner while, som utför kroppen så länge ett villkor är sant for, som utför kroppen för varje element i en lista

Python 2.5! # Count down antal = 10 while antal > 0: print antal antal = antal - 1 print "Boom!"

Python 3! # Count down antal = 10 while antal > 0: print(antal) antal = antal - 1 print("boom!")

Python 2.5! # Count down antal = [1,2,3,4,5,6,7,8,9,10] antal.reverse() for el in antal: print el print "Boom!"

Python 3! # Count down antal = [1,2,3,4,5,6,7,8,9,10] antal.reverse() for el in antal: print(el) print("boom!")

Fler fancy exempel på forloopar

Python 2.5! # Count down antal = range(1,11) antal.reverse() for el in antal: print el print "Boom!"

Python 3! # Count down antal = range(1,11) antal.reverse() for el in antal: print(el) print("boom!")

Python 2.5! # Count down antal = range(10,0,-1) for el in antal: print el print "Boom!"

Python 3! # Count down antal = range(10,0,-1) for el in antal: print(el) print("boom!")

Python 2.5! # Count down for el in range(10,0,-1): print el print "Boom!"

Python 3! # Count down for el in range(10,0,-1): print(el) print("boom!")

Python 2.5! # Hej, x from input name = raw_input("skriv in ditt namn: ") print "Hej", name

Python 3! # Hej, x from input name = raw_input("skriv in ditt namn: ") print("hej", name)

Funktioner En funktion är ett sätt att ge ett namn till 1 eller flera rader kod Ett program delas med fördel upp i olika funktioner e ersom det blir lättare att läsa och lättare att ändra i Det är viktigt att ge bra namn till funktioner annars kommer man att förvirra den som använder dem Att använda en funktion i ett program kallas för att anropa den Du kan tänka på ett anrop som att du klistrade in koden från funktionen där anropet sker

Python 2.5! # Defining a function def my_first_function(): print "You have just used my first function" # print( ) i 3.0 my_first_function()

Funktioner med argument En funktion kan ta ett eller flera argument Ett argument är något som skickas till funktionen i samband med att man anropar den Argument är ett sätt att skicka med data till en funktion

Python 2.5! # Defining a function with an argument def my_second_function(argument): print "Du skickade mig en", argument # print( ) i 3.0 my_second_function(4711) # Defining a function with three arguments def my_third_function(a, b, c): print a*b*c my_third_function(10, 5, 3)

Returnera ett värde från en funktion En funktion kan utföra en beräkning och sedan returnera (ung. skicka tillbaka) resultatet till den som anropade den Nyckelordet return kan används för detta Om man skriver return utan att ange ett värde som skickas med så avslutas funktionen där Det är så resultatet från funktionen raw_input (input i Python 3) skickas tillbaka till huvudprogrammet

Python 2.5! # Returning a value def calculation(a,b): return a+b result = calculation(4000, 711) print result # print(result) i Python 3 # Returning a value at different points from a function def return_greatest(a,b): if a < b: return b if a > b: return b return "De är lika stora" result = return_greatest(3, 5) print result # print(result) i Python 3

Python 2.5 & 3 # Playing with lists [] # the empty list [1] # list containing the number 1 [1,3,5,7] # list containing four numbers a = [1,4,3,5] # storing a list in a variable a[0] # == 1 (the element on the first position in the list) a[0:2] # == [1,4] slice out the first two elements a[-1] # == 5 (the element on the last position in the list) a[0:-1] # == [1,4,3] slice out all elements except last

Python 2.5! def print_many_greetings(people): if people!= []: print "Hello", people[0] print_many_greetings(people[1:]) def ask_name(): return raw_input("skriv in ditt namn: ") who = ask_name() names = [] while not who == "": names.append(who) who = ask_name() print_many_greetings(names)

Python 3! def print_many_greetings(people): if people!= []: print("hello", people[0]) print_many_greetings(people[1:]) def ask_name(): return input("skriv in ditt namn: ") who = ask_name() names = [] while not who == "": names.append(who) who = ask_name() print_many_greetings(names)

Att köra ett Pythonprogram Du kan med fördel ta något av exempelprogrammen i dessa bilder och spara som en textfil med filändelsen.py, t.ex., test.py Du kan sedan köra denna fil från kommandoraden med python test.py (Givet att Python är installerat och att du står i samma katalog som test.py)