1 / 23

9. Gör ritningen innan Du bygger huset

9. Gör ritningen innan Du bygger huset. 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. Varför?. Dokumentation

Download Presentation

9. Gör ritningen innan Du bygger huset

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. 9. Gör ritningen innan Du bygger huset

  2. 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. 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. Flödesdiagram Start Ja Nej Fler? M1 = G1/A1 Mata in person Skriv ut A1 och M1 Kategori 1? Nej Ja M2 = G2/A2 Addera 1 till A1 Addera 1 till A2 Skriv ut A2 och M2 Addera åldern till G1 Addera åldern till G2 Stopp

  6. Symboler Start Start- och stopp Stopp Tangentbord Bildskärm eller annan display Generell symbol för in- eller utmatning In- och utmatning Lagrade data, exempelvis fil på disk Dokument, vanligen uttolkad som utskrift på skrivare

  7. Bearbetning Bearbetning Bearbetning (vanligen en enkel imperativ sats) Bearbetning någon annanstans (vanligen ett anrop till en procedur eller funktion) Subprocedur eller funktion Alternativ process-symbol

  8. Val fler? ja ålder? nej ålder < 18 18 ≤ ålder ≤ 64 ålder ≥ 65

  9. Konnektorer 3 1 2 Nej Ja 1 2 3

  10. Exempel: Lönebearbetning, huvudflöde Start 1. Uppdatera löneregister 2. Beräkna lönen 3. Uppdatera lönekonton 4. Redigera statistik Stopp

  11. Exempel: Beräkna lönen Start 2. Läs in arbetstimmar Arb.tim ≤ 40? Nej Ö.tim = Arb.tim - 40 Ölön = Ö.tim * ÖTimLön Ja Arb.tim = Arb.tim – Ö.tim Nlön = Arb.tim * NTimLön Registrera Nlön och Ölön Stopp

  12. Jackson Structured Programming (JSP)

  13. Jackson Structured Programming (JSP) Programmet BPStomme M1 = G1/A1 Skriv ut A1 och M1 M2 = G2/A2 Skriv ut A2 och M2 (Så länge det finns uppgifter) Bearbeta poster * Mata in person Kategori (1) o o Kvinna Annat Addera 1 till A1 Addera åldern till G1 Addera 1 till A2 Addera åldern till G2

  14. Symboler o Sekvens Selektion Iteration *

  15. Noder i ett träd A Nivå 1 B C D Nivå 2 E F Nivå 3 först sedan senare ännu senare Endast lövnoderna ”utför” något

  16. Selektion A (villkor) o o B C

  17. Selektion Selektion A (villkor) (villkor) o o o B C D (villkor) o o E F Selektions-delar

  18. Iteration A (villkor) B *

  19. Endast samma typ under en rotnod A o * C D

  20. Exempel: Lönebearbetning Löne-programmet Uppdatera löneregister Beräkna lönen Uppdatera lönekonton Redigera statistik

  21. Exempel: Beräkna lönen Beräkna lönen Läs in arbetstimmar Övertid Nlön = Arb.tim * NTimLön Registrera Nlön och Ölön (Arb.tim > 40) o o Beräkna övertid - Ö.tim = Arb.tim - 40 Ölön = Ö.tim * ÖTimLön Arb.tim = Arb.tim – Ö.tim

  22. Extern bearbetning Löne-programmet Uppdatera löneregister Beräkna lönen Uppdatera lönekonton Redigera statistik Subprocedur eller funktion

  23. Pseudokod • 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). • 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. • 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. • 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. • 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å.

More Related