1 / 62

Programmeringsbegrepp

Elektronisk publicering. Programmeringsbegrepp. Idag. Programspråk Algoritmer Operatorer Programblock och satser Objektorientering. Programspråk…. …kräver en exakt syntax …kräver en exakt semantik Känns det bekant?. Programspråk. Maskinkod Ettor och nollor Assembleringsspråk

Download Presentation

Programmeringsbegrepp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elektronisk publicering Programmeringsbegrepp

  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 At end of list? YES NO Point to next salary Output noted number 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 • 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 • <!-- 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) • sats • annars • sats

  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 </a>

  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 • 1.1.1.1 Ring pizzerian • 1.1.1.2 Vänta tills pizzan är färdig • 1.1.1.3 Hämta pizzan • 1.2 annars • 1.1.2 Laga maten själv

  50. Fortsättning: 1.1.2 Laga maten själv • 1.1.2.1 För varje ingrediens; kontrollera att tillräcklig mängd finns • 1.1.2.2 Om tillräcklig mängd inte finns • 1.1.2.2.1 Skriv ingrediens och mängd på en inköpslista • 1.1.2.3 Om inköpslistan är tom • 1.1.2.3.1 Börja laga maten • 1.1.2.4 annars • 1.1.2.4.1 Handla ingrediens • 1.1.2.4.2 Stryk ingrediens från listan • 1.1.2.4.3 Gå till 1.1.2.3

More Related