Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1
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! 2
Enkel mental model av datorn Minne CPU Processor förändrar information - det är den vi programmerar, - kan man säga Minne lagrar information 3
Programmeringsparadigmer Olika paradigmer fundamentalt olika sätt att programmera Programmeringsspråk Denna kurs Deklarativa språk Imperativa språk Funktionella språk Logikspråk 4
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
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
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! 7
Python-interpretatorn 8 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 ex print 1+1 Interpretatorns svar på detta kommando blir 2 samt en ny prompt. Sessionen kan avslutas med (ctrl)d
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 kommandot print 1+1 Om interpretatorn nu startas genom att man skriver python kalle.py kommer resultatet 2 att skrivas ut, varefter interpretatorn avslutas direkt 9
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 10
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! 11
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! 12
Litet enkelt program Programmet: print "-- Mitt program --" v = 3 g = 4 print v,"multilicerat med ",g," blir ",v*g print "-- Slut på mitt program --" Resultatet av körning: -- Mitt program -- 3 multilicerat med 4 blir 12 -- Slut på mitt program -- 13
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 14
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 15