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

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

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

DD1314 Programmeringsteknik

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

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

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 Matlab DD1312. Programspråk. Utskrift på skärmen

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

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.

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

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

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

SMD 134 Objektorienterad programmering

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

Extramaterial till Matematik Y

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Introduktion till programmering SMD180. Föreläsning 7: Strängar

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

Programmering A. Johan Eliasson

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Variabler och konstanter

Grundläggande datalogi - Övning 1

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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

Övning2. Variabler. Data typer

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

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 2 Programmeringsteknik och C DD1316

TDDC77 Objektorienterad Programmering

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Tilpro Övning 1. Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: (fast de flesta frågor besvaras nog bäst av Alexander)

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

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

Uppgifter teknik HT17 (uppdaterad v. 40)

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Pythons standardbibliotek

F4. programmeringsteknik och Matlab

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

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

Programmeringsteknik med C och Matlab

TDIU01 - Programmering i C++, grundkurs

Objektorienterad Programmering (TDDC77)

Imperativ programmering. Föreläsning 2

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

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

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

Introduktion C-programmering

Repetition C-programmering

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

729G04 Programmering och diskret matematik. Python 3: Loopar

Föreläsning 3: Booleans, if, switch

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Objektorienterad programmering i Java

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Tilpro Övning Per-Anders Staav (vikarierande) (föredrar att kallas Pa) Kan nås via epost:

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

C++ - En introduktion

DD1361 Programmeringsparadigm. Carina Edlund

Parameteröverföring. Exempel. Exempel. Metodkropp

Exempel på ett litet Ada-program

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Python Första steg. LGMA20, L9MA20 VT 2019 Jonathan Nilsson, Laura Fainsilber

Laboration 1 Introduktion till Visual Basic 6.0

En kort text om programmering i C.

Obligatorisk uppgift 5

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

Grundläggande databehandling ht 2005

Ordlistor, filhantering och ut på webben. Linda Mannila

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

Objektorienterad programmering Föreläsning 4

TDIU01 - Programmering i C++, grundkurs

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

Installera Anaconda Python

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

TDDE44 Programmering, grundkurs

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Objektorienterad Programmering (TDDC77)

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

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Karlstads Universitet, Datavetenskap 1

Uttryck och villkor. Föreläsning 2

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

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

OOP Objekt-orienterad programmering

Föreläsningsmaterial (Syntax och variabler)

Användarhandledning Version 1.2

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Digitalt lärande och programmering i klassrummet

Transkript:

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

Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och "Hello, World!" Olika typer av värden: 2 är ett heltal (integer) "Hello, World!" är en sträng av tecken (string) Tal med decimaler utgör en egen typ: 2.0 och 3.14 är exempel på flyttal (float) Observera citat-tecknen: "2" och "3.14" är båda värden av typen string 2 2

Om typer Vi kan fråga interpretatorn vad ett värde har för typ: >>> type("hello, World!") <type 'str'> >>> type(17) <type 'int'> >>> type(3.14) <type 'float'> >>> type("3.14") <type 'str'> (Konvention: >>> markerar interaktion med interpretatorn, blå färg är text vi själva skriver) 3 3

Flyttal Observera att flyttal skrivs med decimal-punkt, ej komma: >>> print 3.14 3.14 Om vi försöker använda decimal-komma blir vi dock förvånade: >>> print 3,14 3 14 Orsak: print tar egentligen en komma-separerad lista av värden, som sedan skrivs ut med inskjutna mellanslag! 4 4

Variabler Central egenskap hos programspråk: att kunna ge namn åt värden. Dessa namn kallas variabler. "Ge en variabel ett värde" synonymt med "ge värdet ett namn" I Python: >>> message = "What's up, Doc?" >>> n = 17 >>> pi = 3.14159 5 5

Variabler print och type fungerar också för variabler: >>> print n 17 >>> print pi 3.14159 >>> type(n) <type 'int'> >>> type(message) <type 'str'> 6 6

Tillstånd Uppsättningen definierade variabler och deras värden förändras normalt under ett programs gång Det tillstånd ett program har i ett visst ögonblick kan beskrivas av en figur som anger de definierade variablernas värde: message n pi "What's up, Doc?" 17 3.14159 Vi kommer att se många sådana figurer framöver 7 7

Regler för variabler Ok: n, pi, x, bruce, Bruce, Bruce_Wayne, bruce9 Felaktig syntax: 76trombones, more$, Bruce Wayne, class Namnet class är felaktigt som variabelnamn eftersom det är ett s k nyckelord i Python. Nyckelord har speciell betydelse och kommer att förklaras efter hand. Övriga nyckelord: and assert break continue def del elif else except, exec finally for from global if import in is lambda not or pass print raise return try while yield 8 8

Satser En sats (statement) är en instruktion till datorn att utföra något.vi använder ibland ordet kommando också Satser vi sett hittills: print och variabeltilldelning Ett script är en sekvens av satser (dvs en följd av kommandon). Exempel: print 1 x=2 print x Kan läggas i en fil (säg test.py) och köras. Resultat: 1 2 9 9

Uttryck och evaluering Ett uttryck (expression) är en kombination av värden, variabler och matematiska operatorer. Exempel: >>> print 1+1 2 Betydelse: evaluera först uttrycket 1+1 till ett värde, skriv sedan ut detta värde Exempel på uttryck: 10 1+1 17 x 19*2-3 OBS: ett ensamt uttryck på en rad ger också en utskrift av utryckets värde. Två skillnader gentemot print: Citat-tecknen försvinner inte för strängar Fungerar bara interaktivt, ignoreras i script 10

Operatorer och operander Fler exempel på Python-uttryck: 20+32 hour-1 hour*60+minute minute/60 5**2 (exponent-operation) (5+9)*(15-7) +, -, *, /, ** kallas operatorer, de arbetar på operander Betydelsen är den förväntade. Observera dock: >>> 10/3 3 (heltalsdivision!) 11 11

Flyttalsoperatorer De matematiska operatorerna är även definierade för flyttal: 2.5 + 1.0 (evaluerar till 3.5) 2.5 + 1 (evaluerar också till 3.5) 2.0**3.0 (evaluerar till 8.0) 16**0.5 (evaluerar till 4.0) -1 * 0.5 (evaluerar till -0.5) Division för flyttal är den förväntade operationen: >>> print 10.0/3 3.33333333333 Regel: om en operand är en float konverteras den andra automatiskt (om den är en int) 12 12

Evalueringsordning Python följer den etablerade precedens-ordningen för matematiska operatorer. Minnesregel PEMDAS (Parentes, Exp, Mult, Div, Add, Sub) Exempel: 2 * (3-1) (1+1)**(5-2) (3 * 100) / 60 3 * 100 / 60 3*1**3 2 * 3-1 1+2 / 3 2*2 2 ** 3 300 / 60 (3*100) / 60 3 * (1**3) (2*3) - 1 1 + (2/3) 13 13

Uttryck med strängar Antag att vi definierat message = "abc" Följande är felaktiga uttryck (resulterar i run-time-fel): message-1 message*"hello" "15"+2 Regel: matematik fungerar bara på heltal (och flyttal) Men: operatorerna + och * har i Python getts en annan betydelse för just strängar: >>> fruit = "banana" >>> print fruit + " nut bread" banana nut bread >>> print "Fun" * 3 FunFunFun 14 14

Observation: 4*3 4+4+4 "Fun"*3 "Fun"+"Fun"+"Fun" Där slutar dock överensstämmelsen med heltalen! 7+3 3+7 är inte lika med "def"+"abc" "abc"+"def" Observera: + är definierad för heltal + heltal samt sträng + sträng * är definierad för heltal * heltal samt sträng * heltal (Dessutom har vi flyttalen, och många operatorer är definierade för andra typer också mer om det senare) 15 15

Sammansatta uttryck Operander kan själva vara uttryck eller variabler vi kan alltså sätta samman större uttryck från mindre delar: >>> print "Minutes left:", hours*60 + minutes Minutes left: 72 >>> percentage = (minutes * 100) / 60 >>> claim = " is " + "Fun"*3 + " indeed!" Större program (script) är i allmänhet fulla av sådana sammansatta uttryck. Är man osäker kan man dock alltid införa namn på deluttrycken: >>> m100 = minutes * 100 # temporary variable >>> percentage = m100 / 60 # integer division! 16 16