Presentation laddar. Vänta.

Presentation laddar. Vänta.

Programmeringsbegrepp Elektronisk publicering. Idag Programspråk Algoritmer Operatorer Programblock och satser Objektorientering.

Liknande presentationer


En presentation över ämnet: "Programmeringsbegrepp Elektronisk publicering. Idag Programspråk Algoritmer Operatorer Programblock och satser Objektorientering."— Presentationens avskrift:

1 Programmeringsbegrepp Elektronisk publicering

2 Idag Programspråk Algoritmer Operatorer Programblock och satser Objektorientering

3 Programspråk… …kräver en exakt syntax …kräver en exakt semantik Känns det bekant?

4 Programspråk Maskinkod –Ettor och nollor Assembleringsspråk –Enklare kommandon Högnivåspråk –Mer likt människans sätt att uttrycka sig på –Dagens programmeringsspråk

5 Flödet… Algoritm skapas Programmerare kodar algoritmen i ett högnivåspråk En kompilator kompilerar koden till assemblerspråk/maskinkod

6 Programspråk FORTRAN – 50-talet, främst anpassat för numeriska beräkningar (t ex simuleringar av en kärnreaktion) COBOL – sent 50-tal, främst anpassat för affärer, banker, företag PASCAL – tidigt 70-tal, generellt språk LISP – 60, populärt inom AI PROLOG – 70, bygger på logik

7 Nyare språk Java C++ C# Programspråk anpassade för webben: –PHP –ASP –Visual Basic –JavaScript –…och XSLT

8 Många programspråk finns… …varför? Två skäl: 1 - Teknologisk utveckling kräver nya språk 2 - Nya områden och nya tillämpningar kräver nya språk

9 Programmering......handlar om problemlösning Problemlösning kan liknas vid ett recept......men det något vackrare ordet algoritm används nog mest frekvent i de här sammanhangen

10 Algoritmer En algoritm ≈ Ett recept Steg för steg-instruktioner för att lösa ett problem

11 Ett exempel på en algoritm 1 Notera 0, peka på första lönen i listan 2 Öka aktuellt värde med lönen som är utpekad 3 Om slut på listan 3.1 Skriv ut summan 4 Annars 4.1 Peka på nästa lön

12 Ett exempel på en algoritm Start Note 0; Point to first salary Add salary pointed at noted number Output noted number Point to next salary At end of list? stop YESNO Harel, D. (1992) Algorithmics – The spirit of computing

13 Alla problem kan lösas med… Sekvens – en serie instruktioner som alltid utförs i samma ordning Selektion – vägval, ett styrt val av en operation Iteration – upprepning av en eller flera operationer, styrs i regel av ett avbrottsvillkor Rekursion – ett problem delas upp systematiskt i mindre, likartade delar (egentligen en typ av iteration)

14 I slutändan… En dator är bra på att fatta enkla beslut och göra beräkningar Komplicerade beslut måste delas upp i enkla delar som datorn kan förstå För att göra detta skapas algoritmer Hur fantastiskt ett program än må vara så består det fortfarande bara av funktioner och variabler

15 Programblock och satser Vid det här laget är ni ju redan bekanta med krullparenteserna { } Allt mellan två krullparenteser hör ihop Det som finns mellan dem är satser En sats är ett kommando som får något att hända Satser som ger ett värde kallas för uttryck

16 Programblock och satser if (pris>40) { document.write "Oj, vad dyrt!"; } else if ((pris 20)) { document.write "Priset är OK!"; } else { document.write "Oj, vad billigt!"; }

17 Variabler och konstanter Variabel – ett utrymme där man lagrar data En variabel är av en datatyp Variabeln och dess datatyp deklareras vanligtvis innan den ska användas Konstant – en variabel vars värde aldrig ändras

18 Datatyper Heltal (byte, short, int, long) ‏ Decimaltal (float, double) ‏ Text (char, string) ‏ Datum (date, datetime) ‏ Boolesk (boolean) ‏

19 Deklarera variabler ActionScript –var pos_x:Number = 0; –var pos_y:Number = 8; –var str:String = "en sträng text"; C# –int pos_x = 0; –int pos_y = 8; –string str = "en sträng text";

20 Namnge variabler Beskrivande namn –kalle är inte ett bra namn på en heltalsvariabel som lagrar längd Följ tumreglerna: –Inled alltid med en bokstav –Första bokstaven är gemen –Varje följande ord börjar med versal –Alla andra bokstäver är små –Efter första tecknet kan vanligtvis siffror samt understreck förekomma

21 NULL NULL är ett värde som är ingenting NULL är ett värde som är odefinierat NULL är inte lika med 0, "" (tomma strängen) eller empty Kort och gott: vi vet inte vad värdet ska vara

22 Konkatenering Att sammanfoga något till en serie Två ihopslagna textsträngar är resultatet av en konkatenering s1 = 'Detta är en sträng'; s2 = ' som snart ska slås ihop med denna sträng'; print s1 + s2;

23 Kommentarer /* klassisk C-kommentar */ // C++-kommentar Används för att lägga in kommentarer i koden eller kommentera bort kod

24 Operatorer Specialtecken för jämförelser a == ba är ekvivalent med b a != ba är inte ekvivaltent med b a > ba är större än b a < ba är mindre än b a >= ba är större än eller ekvivaltent med b a <= ba är mindre än eller ekvivalent med b

25 Operatorer… …fungerar egentligen som funktioner där argument tas emot och returvärden skickas tillbaka Argumenten a och b skickas till funktionen som returnerar resultatet av jämförelsen

26 Aritmetiska operatorer a + baddition a – bsubtraktion a * bmultiplikation a / bdivision a % bmodulusdivision

27 Logiska operatorer a > b || a > ca är större än b eller c a > b && a > ca är större än b och c ! aa är falskt Tänk på att resultatet av en jämförelse alltid har något av värdena sant eller falskt

28 Tilldelningsoperatorn = a = ba tilldelas värdet av b a = a * ba tilldelas värdet av a multiplicerat med värdet av b a += ba tilldelas värdet av a plus värdet av b Tilldelningsoperatorn kan användas med alla aritmetiska operatorer

29 Öka på och minska Inkrementering och dekrementering –a ++a ökas på med 1 –a --a minskas med 1

30 Villkor, uttryck och operatorer Vägval –Om det här gäller, gör a –Annars om det här gäller gör b –Annars gör c

31 Vägval om (uttryck) –sats annars om (uttryck) –sats annars –sats

32 Vägval, if – else if - else if (pris>40) { print "Oj, vad dyrt!"; } else if ((pris 20)) { print "Priset är OK!"; } else { print "Oj, vad billigt!"; }

33 Vägval, switch switch (veckodagNr) { case '1': print "Det måste vara måndag"; case '2': print "Det måste vara tisdag"; case '3': print "Det måste vara onsdag"; case '4': print "Det måste vara torsdag"; case '5': print "Det måste vara fredag"; default: print "Det måste vara helg"; }

34 Slingor: for for (kontrollvariabel initieras ; villkor ; ändring av kontrollvariabelns värde) ‏ –sats

35 For-loopen, exempel for (pris; pris<40; pris++) { if (pris%2==0) { print pris; } else { print "Priset är inte jämnt delbart med 2"; }

36 While-loopen while (pris<40) { if (pris%2==0) { document.write pris; else { document.write "Priset är inte jämnt delbart med 2"; } pris++; }

37 While-loopen while (cont=='j') {... print "Kör igen (j/n)?"; cont = userInput; }

38 Rekursion Rekursion är en... …lösningsteknik där ett större problem löses genom att reducera det till ett mindre problem av samma form En subrutin, eller procedur, anropar sig själv Förvirrande? "För att förstå rekursion så måste man förstå rekursion."

39 Rekursion static void countDown(int n) { if (n < 1) { print "Start!"; } else { print "T minus " n " seconds"; countDown(n - 1); } countDown(60);

40 Vektor (array) ‏ En lista av likadana typer Varje position i listan har en egen adress, ett eget index –vektor[0]='David' Matris = flera vektorer på rad –vektor[0][0]='David' –vektor[0][1]='1981' –vektor[1][0]='Kalle' –vektor[1][1]='1984'

41 Vektorer En vektor kan vara flerdimensionell (matris) ‏ –twoDimArray[2][1] = 'x' Här fungerar vektorn som en tabell –threeDimArray[2][1][4] = 'x' Här fungerar vektorn mer som ett 3-dimensionellt rum En vektor kan innehålla andra vektorer, som i sin tur kan innehålla andra vektorer –Här finns möjligheten att ha olika längd på vektorerna inom en viss vektor

42 Metoder och funktioner En svart låda som tar emot n antal värden som argument och returnerar (vanligtvis) max ett värde I objektorienterad programmering är metod namnet som används En metod definieras i en klass och alla objekt i klassen kan "använda" metoden Värden som tas emot benämns som argument

43 Metoder och funktioner Funktioner skall... –ha lämpliga namn –utföra en sak –kommenteras

44 Funktion… function showHide(x) { var e = document.getElementById(x); if (e.style.display=='none') { e.style.display='block'; } else { e.style.display='none'; }

45 …och dess anrop Visa/dölj

46 Strukturell programmering Programmet ses som en serie instruktioner som utförs i en sekvens Problemet bryts ned i en serie enkla steg Pascal, Basic mfl

47 Objektorientering En modell för modern programmering Fokuserar på de delar som programmet är uppbyggt av samt relationen mellan dessa delar Exempel på språk som har stöd för ett objektorienterat angreppssätt: C++, C#, Java och Simula Med ett objektorienterat synsätt ser man på ett datorprogram som en slags modell av den verklighet som programmet ska samverka med Stegvis förfining

48 1. Problem: Du är hungrig Förfining Skaffa mat 1.1 Om du känner dig lat Beställ pizza 1.2 annars Laga maten själv

49 Förfining Skaffa mat 1.1 Om du känner dig lat Beställ pizza Ring pizzerian Vänta tills pizzan är färdig Hämta pizzan 1.2 annars Laga maten själv

50 Fortsättning: Laga maten själv För varje ingrediens; kontrollera att tillräcklig mängd finns Om tillräcklig mängd inte finns Skriv ingrediens och mängd på en inköpslista Om inköpslistan är tom Börja laga maten annars Handla ingrediens Stryk ingrediens från listan Gå till

51 Objektorientering Allt är objekt Allt har egenskaper Ett objektorienterat språk bygger på klasser Klasserna inkapslar i sig data i form av variabler samt metoder/funktioner

52 Vad är en klass? Här: något som beskriver något annat –class="text" .text { egenskaper } En mall för likartade objekt som har likartade egenskaper men (ofta) olika egenskapsvärden –Klassen människa har egenskaper som längd, vikt, hårfärg, hudfärg etc –En specifik människa har längden 179 cm, vikten 75 kg, hårfärgen mörkblond, hudfärgen vit etc

53 En klass innehåller också metoder Vad kan en människa göra? –Gå –Springa –Köra bil –Kommunicera –etc…

54 Bakgrund till objektorientering Simuleringsprojekt i Oslo på 60-talet –Biltrafik –Kassaköer i butiker –…och liknande Grundtanke: det skulle vara lätt att prata om bilar, kunder och liknande samt deras beteenden Därför infördes begreppen klasser, objekt och attribut (även arv) ‏

55 Klasser, objekt och attribut Klass = den allmänna mallen för ett objekt Objekt = en instans av klassen Attribut = egenskaper hos objektet Glasklart, eller hur?

56 Exempel: boksamling Klass = den allmänna mallen för en bok Objekt = en instans av klassen, det vill säga en bok i det här fallet Attribut = egenskaper hos objektet bok

57 Tänkbara metoder för boksamlingen Skapa ny bok Ge titel Ge författare Ge lånestatus Ändra titel Ändra författare Ändra lånestatus

58 En viss koppling till XHTML… p.text { color: black; font-family: georgia; } Detta HTML-element är en instans av klassen text. Det har egenskaper i form av svart text och teckensnittet georgia.

59 Fler exempel När vi talar om en bok i allmänhet talar vi om en klass När vi talar om en specifik bok talar vi om ett objekt Eftersom en klass är en mall för ett objekt kan vi använda mallen för att skapa nya objekt

60 Kod- och stilkonventioner 1.Sätt aldrig mer än en sats på en rad 2.Om en sats blir för lång låter du den fortsätta på nästa rad, sätt en extra tabb för den delen som hamnar på nästa rad 3.Använd ny rad för klamrarna som inleder och avslutar ett programblock 4.Gör indrag för varje nytt programblock som påbörjas innan det föregående blocket är slut (indentering) ‏

61 Indentering Pasta Bolognese Köttfärs Kött 400 Krossade tomater Grönsaker 400

62 Indentering static void countDown(int n) { if (n < 1) { print "Start!"; } else { print "T minus " n " seconds"; countDown(n - 1); } countDown(60);


Ladda ner ppt "Programmeringsbegrepp Elektronisk publicering. Idag Programspråk Algoritmer Operatorer Programblock och satser Objektorientering."

Liknande presentationer


Google-annonser