Presentation laddar. Vänta.

Presentation laddar. Vänta.

9. Gör ritningen innan Du bygger huset. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Beskrivning av algoritmen.

Liknande presentationer


En presentation över ämnet: "9. Gör ritningen innan Du bygger huset. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Beskrivning av algoritmen."— Presentationens avskrift:

1 9. Gör ritningen innan Du bygger huset

2 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Beskrivning av algoritmen •Tillräckligt detaljerat för implementation •Tillräckligt generellt för att vara oberoende av programmeringsspråket •Flödesdiagram •Jackson Structured Programming (JSP) •Pseudokod

3 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 33 Varför? • Dokumentation •man kan i efterhand se varför man skrivit programmet på det sätt man har gjort. Detta gör också att det blir lättare för kollegor att i efterhand sätta sig in i hur programmet fungerar. • Enklare att koda •med lösningen redan på pränt i form av pseudokod/ flödesschema blir kodningen lättare. • Översikt •desto större applikationer, desto mer komplex blir lösningen. Det är dödsdömt att tro att man kan göra ett större program utan att fästa algoritmerna på papper först. I detta arbete ser man också tydligare vilka delar som kan brytas ned till separata moduler och funktioner • Programspråks- och plattformsoberoende •pseudokod/flödesschema/ JSP-diagram görs utan egentlig hänsyn till vilket programspråk man senare skall koda i. Detta gör det också lättare att senare konvertera program från ett språk till ett annat. • Man börjar i rätt ände •nämligen med att lösa själva problemet. Det visar sig snabbt att de som börjar hacka kod direkt, fastnar i design av användargränssnitt eller andra detaljer utan ha lösningen till det egentliga problemet klar för sig.

4 Flödesdiagram

5 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 55 Mata in person Addera 1 till A1 Kategori 1? Start Stopp Addera åldern till G1 Fler? M1 = G1/A1 Skriv ut A1 och M1 M2 = G2/A2 Skriv ut A2 och M2 Nej Ja Addera 1 till A2 Addera åldern till G2 NejJa Flödesdiagram

6 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 66 Start Stopp Symboler Start- och stopp Generell symbol för in- eller utmatning Tangentbord Lagrade data, exempelvis fil på disk Dokument, vanligen uttolkad som utskrift på skrivare Bildskärm eller annan display In- och utmatning

7 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 77 Bearbetning Subprocedur eller funktion Alternativ process- symbol Bearbetning (vanligen en enkel imperativ sats) Bearbetning någon annanstans (vanligen ett anrop till en procedur eller funktion) Bearbetning

8 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 88 fler? nej ja ålder? ålder < ≤ ålder ≤ 64 ålder ≥ 65 Val

9 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 99 Nej Ja Konnektorer

10 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur Uppdatera löneregister Start Stopp 2. Beräkna lönen 3. Uppdatera lönekonton 4. Redigera statistik Exempel: Lönebearbetning, huvudflöde

11 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 Nej Ja Start 2. Stopp Läs in arbetstimmar Arb.tim ≤ 40? Nlön = Arb.tim * NTimLön Registrera Nlön och Ölön Ö.tim = Arb.tim - 40 Arb.tim = Arb.tim – Ö.tim Ölön = Ö.tim * ÖTimLön Exempel: Beräkna lönen

12 Jackson Structured Programming (JSP)

13 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 13 Jackson Structured Programming (JSP) M1 = G1/A1M2 = G2/A2 Addera 1 till A2 Addera åldern till G2 Programmet Mata in personKategori KvinnaAnnat Addera 1 till A1 Addera åldern till G1 Bearbeta poster o * Skriv ut A1 och M1 Skriv ut A2 och M2 o (Så länge det finns uppgifter) (1) BPStomme

14 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 14 Selektion o Iteration * Sekvens Symboler

15 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 15 C A EF D B sedansenareännu senare först Nivå 1 Nivå 3 Nivå 2 Noder i ett träd Endast lövnoderna ”utför” något

16 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 16 B o C o A (villkor) Selektion

17 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 17 C A EF DB Selektion Selektions- delar ooo oo (villkor) Selektion

18 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 18 A B * (villkor) Iteration

19 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 19 C A D o * Endast samma typ under en rotnod

20 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 20 Beräkna lönen Löne- programmet Uppdatera lönekonton Uppdatera löneregister Redigera statistik Exempel: Lönebearbetning

21 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 21 Ö.tim = Arb.tim - 40 Arb.tim = Arb.tim – Ö.tim Ölön = Ö.tim * ÖTimLön Övertid Beräkna lönen Nlön = Arb.tim * NTimLön Läs in arbetstimmar Registrera Nlön och Ölön (Arb.tim > 40) Beräkna övertid - oo Exempel: Beräkna lönen

22 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Subprocedur eller funktion Extern bearbetning Löne- programmet Uppdatera löneregister Beräkna lönen Uppdatera lönekonton Redigera statistik

23 Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 23 Pseudokod 1.Efterlikna både bra kod och bra svenska, •Identifierare skall ha begripliga namn, inkludera användbara kommentarer, indentera även pseudokoden så olika blocknivåer syns, samt att uttryck på svenska skall vara begripliga (oftast behöver de dock inte vara fullständiga meningar). 2.Strunta i onödiga detaljer. •Om du i pseudokod bekymrar dig över placeringen av punkt och komma, så är du på för detaljerad nivå. Det är givetvis bra att använda någon standard för att gruppera sammanhängande programsatser (begin-end, måsvingar, eller något annat som blir tydligt), men fastna inte i hur det skrivs i något specifikt språk. 3.Hoppa över självklarheter. •I många fall är exempelvis vilken datatyp en viss variabel skall ha tydligt utifrån sammanhanget. Om det inte är särskilt viktigt för programmet om det skall vara ett heltal eller reellt tal, så är det oftast onödigt att skriva ut det. 4.Utnyttja kortformer för särskilda koncept. •Konstruktioner som är återkommande genom flera programmeringsspråk är mycket lämpliga att skriva på samma sätt även i pseudokod. Att använda parametrar när vi skriver pseudokod för procedurer och funktioner är tydligt och klart och kan knappast missförstås. 5.Kontrollera balansen i pseudokoden. •Det skall gå att enkelt utläsa av pseudokoden hur algoritmen skall kunna implementeras, annars ligger pseudokoden på för hög nivå. Om pseudokoden däremot är svår att läsa och begripa ligger den troligen på för låg nivå.


Ladda ner ppt "9. Gör ritningen innan Du bygger huset. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Beskrivning av algoritmen."

Liknande presentationer


Google-annonser