9. Gör ritningen innan Du bygger huset

Slides:



Advertisements
Liknande presentationer
Att förstå anonymiteten (översättning från
Advertisements

Talföljder formler och summor
Skapa ett video-CV på YouTube
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Relationsoperatorer Java/C# C/C++ Visual Basic FORTRAN PASCAL ORACLE
Att söka till högskolan
Svenska Akademins Ordbok (SAOB)
Videokonsultation med medborgare
10. Elementen i strukturerad programmering
Klasser och objekt.
Funktioner och programorganisation
Leif Håkansson’s Square Dancer Rotation
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Konsultföretag Grundat anställda Helsingborg
Några standardalgoritmer
Filhantering Grundprincipen för filhantering Öppna filen
Föreläsning 4 Python: mera om funktioner och parametrar
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Stora additionstabellen
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2004.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Programmering B PHP Lektion 2
INFÖR NATIONELLA PROVET
1 Funktioner Nr 3 Funktionstyper, högre ordningens funktioner och polymorfism.
Repetition inför slutprovet
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
1 Vänsterskolan Debattartiklar. 2 Aktuell krok 3 Aktuella krokar 1. Direkt krok.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Polymorfism.
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Det handlar om multiplikation
Arv.
TÄNK PÅ ETT HELTAL MELLAN 1-50
Vår metodik för att energieffektivisera Flerfamiljsbostäder
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 1 De bifogade OH-bilderna är bara utkast till vad som kan vara.
Uppdaterad januari 2015 Webbanmälan till högskolestudier ht 2015 Material för studie- och yrkesvägledare.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
Objektorientering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
INTRODUKTION TILL PROGRAMMERING
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Ingenjörsmetodik IT & ME 2008
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
:58 Hjälp oss att göra ST bättre1 Response Log.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
BVForum - en genomgång för revisorer Sören Thuresson.
Länkade listor Binära träd
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
Knappar och rutor. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 System.ComponentModel System.Windows.Forms.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Python.
Presentationens avskrift:

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 Enklare att koda Översikt 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.

Flödesdiagram

Flödesdiagram Start Ja Fler? Nej 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

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

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

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

Konnektorer 3 1 2 Nej Ja 1 2 3

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

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

Jackson Structured Programming (JSP)

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

Symboler o Sekvens Selektion Iteration *

Endast lövnoderna ”utför” något 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

Selektion A (villkor) o o B C

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

Iteration A (villkor) B *

Endast samma typ under en rotnod * C D

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

Exempel: 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

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

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å.