15
L U L E Å T E K N I S K A U N I V E R S I T ET D 0 0 0 9 E S Y S T E M T E K N I K INTRODUKTION TILL PROGRAMMERING 1 Introduktion till programmering D0009E Föreläsning 1: “Programmets väg”

Introduktion till programmering D0009E Föreläsning 1 ... fileL U L E Å T E K N I S K A U N I V E R S I T ET S Y S T E M T E K N I K D 0 0 0 9 E INTRODUKTION TILL PROGRAMMERING Enkel

Embed Size (px)

Citation preview

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

1

Introduktion till programmeringD0009E

Föreläsning 1: “Programmets väg”

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

2

Vad är en dator?

� En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne(inte helt olikt förra seklets självspelande pianon!)

� Att programmera en dator handlar alltså om att lägga in önskade bitmönster i datorns minne...

� Problemet är bara att människor har väldigt svårt att tänka i termer av bitmönster(jämför att spela piano genom att stansa hålrullar)

� Lyckligtvis kan vi ta hjälp av andra program när vi programmerar!

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

Enkel mental model av datorn

3

CPU

Minne

Minne lagrar information

Processor förändrar information- det är den vi programmerar,- kan man säga

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

Programmeringsparadigmer

� Olika paradigmer

• fundamentalt olika sätt att programmera

4

Programmeringsspråk

Deklarativa språk

Funktionella språk Logikspråk

Imperativa språk

Denna kurs

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

Vad är ett program?

� Ett imperativt program är en sekvens av instruktioner till datorn• skrivna på ett speciellt språk

• programmeringsspråk

� Instruktionerna utförs, en efter en• när dom är slut är programmet slut

� Varje instruktion utför något• Ändrar datorns tillstånd/bitmönster

� Ordningen väldigt viktig• Inte samma program om vi kastar om instruktionerna

� Det finns programmeringsspråk som fungerar helt annorlunda• dessa kallas deklarativa språk• ...men dom tar vi inte upp i denhär kursen

5

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

Ett enkelt ”program” för att brygga kaffe ☺

� häll i vatten i behållaren

� ta fram ett kaffefilter

� häll i en skopa kaffe i filtret

� upprepa ovanstående tills tillräckligt med kaffe finns i filtret

� montera filtret

� slå på bryggaren

� titta efter om kaffet är klart

� upprepa ovanstående tills kaffet är klart

� häll upp kaffet

6

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

7

Python

� Ett modernt interpreterat högnivåspråk

� Exempel på andra språk som du kanske hört talas om: C, Pascal, C++, Java, Ada, Tcl, Perl, Visual Basic, C#, ...

� Exempel på språk som enbart kan beskriva data men inte beräkningar: HTML, XML, ASN.1, ...

� Python är fritt tillgängligt (python.org) och stödjer en mängd datorplattformar – installera gärna hemma!

� Populärt inom open-source-världen, används bl a av Google, NASA, AstraZeneca, Honywell och NYSE

� Blir allt vanligare på universiteten, på LTU från 2006!

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

8

Python-interpretatorn

� Kan startas direkt från datorns kommandorad:python

� Interpretatorn svarar dåPython 2.3.5 (#1, Mar 20 2005, 20:38:20)Type "help", "copyright", "credits" or "license" for more

information.>>>

� Prompten >>> markerar att interpretatorn är beredd att ta emot kommandon, t exprint 1+1

� Interpretatorns svar på detta kommando blir2

samt en ny prompt. Sessionen kan avslutas med (ctrl)D

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

9

Python-script

� Alternativt kan de kommandon man önskar köra samlas i en fil, ett s k script (program)

� Exempel: antag att filen kalle.py innehåller kommandotprint 1+1

� Om interpretatorn nu startas genom att man skriverpython kalle.py

kommer resultatet2

att skrivas ut, varefter interpretatorn avslutas direkt

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

10

Python-miljön IDLE

� Vi kommer oftast att arbeta med Python-program i den integrerade utvecklingsmiljön IDLE

� IDLE är ett fönster-baserat program som• kör Python-interpretatorn som en underprocess i fönstret Python Shell

• kan öppna och redigera Python-script (filer som slutar på .py) i separata fönster

� Fönstren använder färger för att göra Python-texterna mer lättlästa

� Aktuellt script kan enkelt köras med knappen F5

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

11

Byggstenarna i ett program

� Hämta indata (från tangentbord, fil, nätverk, ...)

� Producera utdata (på skärm, fil, nätverk, ...)

� Matematiska operationer (+, -, *, <, ...)

� Villkorlig körning

� Repetition

� Vi har redan sett exempel på produktion av utdata (kommandot print) och matematik (uttrycket 1+1). Övrigt följer, men är i grunden lika enkelt.

� Konsten att programmera är att kunna sätta samman dessa byggstenar till meningsfulla större enheter!

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

12

Det klassiska första programmet

� Brukar användas som exempel på den mest triviala uppgift ett program kan ha: skriv ut texten

Hello, World!

som resultat och avsluta sedan

� I Python blir detta rätt och slätt kommandot

print ”Hello, World!”

� Observera citat-tecknen, de är exempel på en syntaktisk detalj av avgörande betydelse i ett formellt språk men som ofta kan utelämnas i naturligt språk

� I nästa kapitel ska vi titta vidare på dessa skillnader!

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

Litet enkelt program

13

print "-- Mitt program --"v = 3g = 4print v,"multilicerat med ",g," blir ",v*gprint "-- Slut på mitt program --"

Programmet:

Resultatet av körning:

-- Mitt program --3 multilicerat med 4 blir 12-- Slut på mitt program --

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

14

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

L U L E Å T E K N I S K A U N I V E R S I T ETD 0 0 0 9 ES Y S T E M T E K N I K

INTRODUKTION TILL PROGRAMMERING

15

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