Presentation laddar. Vänta.

Presentation laddar. Vänta.

Programmeringsbegrepp

Liknande presentationer


En presentation över ämnet: "Programmeringsbegrepp"— 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 Assembleringsspråk Högnivåspråk
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 At end of list? YES NO Output noted number Point to next salary stop 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<40) && (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 C# 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 Följ tumreglerna:
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
<!-- HTML-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 == b a är ekvivalent med b
a != b a är inte ekvivaltent med b a > b a är större än b a < b a är mindre än b a >= b a är större än eller ekvivaltent med b a <= b a ä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 + b addition a – b subtraktion a * b multiplikation a / b division a % b modulusdivision

27 Logiska operatorer a > b || a > c a är större än b eller c
a > b && a > c a är större än b och c ! a a ä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 = b a tilldelas värdet av b a = a * b a tilldelas värdet av a multiplicerat med värdet av b a += b a 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) annars

32 Vägval, if – else if - else
if (pris>40) { print "Oj, vad dyrt!"; } else if ((pris<40) && (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 <a href="javascript:showHide('e1')"> 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 Stegvis förfining 1. Problem: Du är hungrig Förfining 1...
1. Skaffa mat 1.1 Om du känner dig lat 1.1.1 Beställ pizza 1.2 annars 1.1.2 Laga maten själv

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

50 Fortsättning: 1.1.2 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? 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; } <p class="text">Detta HTML-element är en instans av klassen text. Det har egenskaper i form av svart text och teckensnittet georgia.</p>

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
Sätt aldrig mer än en sats på en rad 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 Använd ny rad för klamrarna som inleder och avslutar ett programblock Gör indrag för varje nytt programblock som påbörjas innan det föregående blocket är slut (indentering)‏

61 Indentering <receptsamling> <recept>
<namn>Pasta Bolognese</namn> <ingrediens> <namn>Köttfärs</namn> <kategori>Kött</kategori> <mangd enhet="gram">400</mangd> </ingrediens> <namn>Krossade tomater</namn> <kategori>Grönsaker</kategori> </recept> </receptsamling>

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"

Liknande presentationer


Google-annonser