l u l e Å t e k n i s k a u n i v e r s i t et ... · en maskin vars beteende styrs av de...

Post on 30-Sep-2018

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

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: Data

Minne lagrar information

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

Minne: Instruktioner

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 den hä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

2

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

7

Innehåller manga fundamental komponenter i ett imperativt språk!

Upprepning

Inläsning av data från omvärlden

Vänta på extern händelse(mer om detta i realtidssystem)

Villkor

Ordning av satser

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

� 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

Exekvering (körning) av program

� Hur kan datorn “förstå” vårt program?

• Är den konstruerad (byggd) för vårt spark (python)?• Måste man ha olika datorer för olika språk?

� Nej, datorn är byggd för ett helt annat, mycket enklare spark:

• Detta kallas maskinkod och är inte till för människor att läsa (det går, men det är jobbigt)

� Man översätter alla andra spark till denna maskinkod.

9

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

Kompilering/interpretering

� Två grundläggande sätt att översätta:• medans man kör programmet (typ simultantolkning)

• kallas att tolka eller interpretera programmet

• en enda innan man startar programmet (jämför med attöversätta en bok)

• kallas att kompilera programmet

� Vem/vad tolkar och kompilerar?• Ett annat program!

• Hur har man skrivit det?– På exakt samma sätt!

� En modern dator går inte att starta utan program!• Man kan inte “komma igång” om datorn är helt tom!

10

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

Kompilering/interpretering

� Interpretering:

• Tolkning måste göras varje gång programmet körs, tar längre tid än att köra redan översatt maskinkod

• Programutvecklingen blir dock betydligt enklare och kan ske interaktivt

� Kompilering:

• Det översatta programmet kräver liten eller ingen tolkning när det ska köras, ger ofta bättre prestanda

• Själva översättningen tar dock tid och gör programutvecklingsarbetet krångligare

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

13

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

3

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

Python-miljön IDLE

� Man skriver programet i etteget förnster (editor)

� Resultatet av körningen syns i“shell”-fönstret

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

� resultatet2

kommer att skrivas ut, varefterprompten visas

14

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

Python-miljön IDLE

� Det går bra att “testa” kommandon direct på prompten

• bra för att felsöka och förstå

• fördel med tolkade språk

15

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

17

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

18

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

19

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

20

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

4

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

21

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

top related