Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.



Relaterede dokumenter
Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling.

Microcontroller, Arduino

Arduino Programmering

Microcontroller, Arduino

Software Dokumentation

Klasse 1.4 Michael Jokil

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

Programmering C RTG

Kom godt i gang med Fable-robotten

Fable Kom godt i gang

Selvstudium 1, Diskret matematik

Introduktion. Philip Bille

Algoritmer og invarianter

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Noter til C# Programmering Iteration

Programmering i C. Lektion september 2009

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Rettelser til Pilen ved træets rod

Programmering i C. Lektion oktober 2008

Arduino Programmering

Sproget Rascal (v. 2)

Programmering for begyndere Lektion 2. Opsamling mm

Fable Kom godt i gang

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Pædagogisk vejledning til. Materialesæt. Pro-Bot. VIA Center for Undervisningsmidler

Kontrol-strukturer i PHP

SOFTWARE DOKUMENTATION

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

Mircobit Kursus Lektion 1

Spil Master Mind. Indledning.

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

#AlleKanKode. Lektion 4 - Kontrol flow

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

// Definition af porte og funktioner

Indhold. Vejledning til ur - DGT 2010

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Mircobit Kursus Lektion 5 (Du skal her vælge Lets Code og nederst Microsoft Block Editor.)

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden

Solid Edge 2D Drafting

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

ELCANIC A/S. ENERGY METER Type ENG110. Version Inkl. PC program: ENG110. Version Betjeningsvejledning

Sortering af information er en fundamental og central opgave.

LCD Character display Intro

Svane Electronic Timer universal med 8 funktioner 1

NetLogo-simuleringen. Simuleringer og fysiske modeller (henfaldsloven)

Brug af digitale ind og udgange

Internt interrupt - Arduino

Netværksalgoritmer 1

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering I Java/C#

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Oversættere Skriftlig eksamen onsdag d. 24. januar 2007

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Det nye husdyrgodkendelse.dk Sagsbehandlermodulet Fra ansøgning til godkendelse V /4 2011

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

KVIK GUIDE TIL ST30 SYSTEM TELEFON

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Undervisningsbeskrivelse

Dynamisk programmering

Hvad Hvorfor Hvordan

Undervisningsbeskrivelse

Iterativ beregning af Rodapproximationer.

Boolsk algebra For IT studerende

Høvdingebold. Introduktion. Scratch

IAI Quick Start Guide

Danmarks Tekniske Universitet

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Sortering af information er en fundamental og central opgave.

3. Om skalamønstrene og den indfoldede orden

LCD Modul. Ved Power-on skal LCD-displayet initieres, og evt. indstilles til 4-bit kommunikation.

Boolsk algebra For IT studerende

UML til kravspecificering

It og informationssøgning Forelæsning september 2006 Nils Andersen. Gentagelser og tekster

Svane Electronic Universal timer med 2 relæer og 18 funktioner hver 1

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

Introduktion til funktioner, moduler og scopes i Python

Erklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).

Kapitel 4 Løkker i C#

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4

Danmarks Tekniske Universitet

KOMPONENT BESKRIVELSE

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

Et CAS program til Word.

BRP Sortering og søgning. Hægtede lister

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

User Guide AK-SM 720 Boolean logic

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

Transkript:

Flowchart Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Et godt program til at tegne flowcharts med er, EDGE-Diagrammer, eller Smartdraw. Der bruges forskellige standardiserede kasser, der hver især viser en handling. I kasserne kan der skrives noget tekst, som forklarer hvad der sker i kassen. Der er forskellige kasser til forskellige handlinger. Der findes mig bekendt 2 måder, man kan tegne et program på. Den der er vist her, og så Nassi Schneidermann. Først gennemgås her den klassiske måde at lave flowcharts. Start og slut Start Ovalen angiver start af programmet eller afslutningen Stop Handling: En handling er en normal operation i et program. Noget, der sker. I kassen skrives, hvad der sker her i programmet!! Det kan fx være en proces, en beregning! Do something En proces har kun 1 indgang, og 1 udgang! Spørgekasse I en spørgekasse foretages et valg. En valg-kasse har 1 indgang, normalt for oven, og 2 udgange, nedad eller til siden. Den ene udgang har betegnelsen J for Ja, og den anden N for!! Ja? Spørgekasse Af: Valle Thorø Side 1 af 17

I kassen kan skrives et spørgsmål!, hvis udfald så afgør hvilken vej, der gås ud af kassen. Input / Output Input / Output Case I en Case struktur udføres 1 af flere funktioner afh. af fx en variabels værdi Gå til: Underprogram: Underprogrammets funktion er specificeret andetsteds: Forbindelseslinier: Mellem kasserne tegnes forbindelseslinier, altid i samme retningen som handlingen. Linierne har pil i den ene retning. Man går altså altid fremad i pilens retning. Regler: Af: Valle Thorø Side 2 af 17

Veltegnede flowcharts er lette at læse. Overholdes disse regler, skulle det være muligt, at tegne gode flowcharts, så man let kan aflæse et programforløb! Alle flowcharts har én start symbol og ét stopsymbol. Flowet i et flowchart er normalt fra toppen af en side og nedad. Dette kan dog variere med loops, som skal flyde tilbage til et indgangspunkt. Der skal bruges pile på forbindelseslinier Der er kun 1 flowchart pr side En side skal have et sidenummer og en titel Et flowchart på én side bør ikke fortsættes på en anden side! Et flowchart bør ikke have mere end ca. 15 symboler, eksklusiv START og STOP Her er nogle eksempler. Repeat Loop Her et eksempel på en handling, der udføres indtil en given betingelse er opfyldt. Handlingen udføres mindst 1 gang. Af: Valle Thorø Side 3 af 17

While Loop I en While loop tjekkes, om en handling skal udføres, - før den udføres. Handlingen behøves således ikke at udføres. If Then Hvis en betingelse er opfyldt, udfæres handlingen, ellers ikke. Handlingen springes over! If Then Else Loop Her udføres enten den ene proces, eller den anden. Af: Valle Thorø Side 4 af 17

Et eksempel Her følger et mere sammensat eksempel. Tjek, om fx et ben er høj, hop udenom til Label Jb P3.7, Her Mov P1, #03h Her: Ja P3.7 høj? Label Af: Valle Thorø Side 5 af 17

Repeat Until: Eks: JNB Flag, Igen DJNZ R3, Igen Initier Tæller Label Do Flag = 1? If Then Else En If Then Else struktur er sværere at programmere, men det kan lette, hvis strukturen tegnes som 1 streng, som vist til højre. Ja? Ja? Do Jmp Do Do Do Af: Valle Thorø Side 6 af 17

Pauseprogram Start Pause Flowchartet viser, et pauseprogram til uc. Den indre løkke kører 256 gange, og den ydre løkke kører 256 gange. FFh eller 255 i R7 Dvs. 65.536 omgange. Med et 12 MHz krystal tager det ca. ¼ sekund. FFh eller 255 i R6 Tæl R6 1 ned R6 = 0? Ja Tæl R7 1 ned R7 = 0? Ja Retur Stopurs-kit: Følgende flowchart viser et program-forløb for vores lille stopurskit. Programmet har faktisk to funktioner. Det ene er hele tiden at skrive tiden i displayet, - og det andet er, at holde øje med, hvor lang tid, der er gået. Denne del er lagt ud i en interrupt-rutine. Af: Valle Thorø Side 7 af 17

Start Interrupt Indstil reg for ur Reload Tæller med startværdi Opsæt timer, Enable interrupt Load Datapointer Inc 100.del 100.del = 10? LAP-Time? Ja Hent 100. del og vis Kopier Urregistre til Lab-Registre 10.del = 0 Inc 10.del Pause 10.del = 10? Hent 10. del og vis Pause Ja Hovedtid Igen? 10.del = 0 Inc sek Hent 1-sek og vis Hent Lab-100. del og vis Pause Sek = 10? Pause Hent 10-sek og vis Hent Lab-10. del og vis Pause Sek = 0 Inc Tisek Pause Hent Lab-1-sek og vis Tisec = 6? / Valle, Sept 2010 Pause Tisek = 0 Hent Lab-10-sek og vis Pause Return Ovenstående er et program, der skal programmeres og overføres til en microcontroller. For at lette programskrivning, bør flowchartet tegnes om til 1 lang søjle, så det bliver lettere at programmere. Af: Valle Thorø Side 8 af 17

Nassi Schneiderman I forbindelse med søgningen efter en god design-metode og en god dokumentationsmetode til brug ved struktureret programmering er der udviklet flere forskellige typer teknikker. En af dem er Nassi Schneiderman Charts. Metoden kaldes også struktureret Flowcharts. N-S Charts er meget anvendelig i struktureret Top-Down programmering. Det er faktisk svært at lave ustrukturerede programmer ud fra N-S. Et Nassi Schneiderman diagram starter med en rektangel på en hel A4 side. Kasserne laves inde i dette rektangel, som vist her efterfølgende: Som tegningen skrider frem, vil de mulige blokstørrelser efterhånden blive meget små.. Men enhver rektangulær blok af et N-S diagram kan fjernes, og flyttes til et nyt stort ark. De mærkes så sådan, at det er muligt entydigt at finde frem til næste side. Hvad er Nassi-Shneiderman Diagrammer? Nassi-Shneiderman (NS) diagrammer er udviklet af Ike Nassi og Ben Shneiderman Hovedformålet med Nassi-Shneiderman diagrammer er at skabe logiske programstrukturer for et Pc-program. På tysk kaldes NS-diagrammer også for struktur-diagrammer. Her er et eksempel på, hvordan man tegner et program-forløb med et Nassi-Shneidermann diagram. Som i det traditionelle flowchart-tegnemåde, - er der i Nassi Shneidermann-systemet en række forskellige kasser og symboler: Af: Valle Thorø Side 9 af 17

En Proces En process beskriver en program-del som pseudocode. Dvs. som tekst-beskrivelse! Man kan lave flere processer efter hinanden. Parallelle Processer Placer processesr, som udføres same tid I et trapez. Tegnes som vist! Loops Loop notationer bruges, når processer gentages indtil en bestemt tilstand er opnået. Repeat until: While Beslutning / Decision Valg-symbolet er et rektangel delt I tre dele som vist. Skriv betingelsen eller spørgsmålet I den øverste trekant, og placer de to mulige udfald I hver deres side af beslutningen. De behøver ikke være af samme størrelse Diagrammet indikerer en algoritme med en process ( Proces 1 ) efterfulgt af et valg. Hver udfald af valget fører til en process. Hvis valget er sand, udføres Proc 2, hvis falsk, proc 3. Case statement List flere cases ved siden af hinanden I table-format Af: Valle Thorø Side 10 af 17

If-Struktur IF-struktur i normal flowchart og i NS. If Then Else Case-struktur Gentagelse (WHILE) Gentagelse (REPEAT) Af: Valle Thorø Side 11 af 17

Som sidste form af gentagelsesstrukturen findes en For-struktur, der udføres et antal gange. Strukturen findes ikke i Flowchart! Underprogram kald i NSD-fremstilling Hyppigt anvendes i programmer bestemte delprogrammer flere gange. De er derfor smarte at placere i et underprogram, en procedure! De kaldes så fra hovedprogrammet! Eksempler: Til højre vises, at der godt kan tegnes flere kasser efter hinanden, for at illustrere flere efter hinanden følgende processer. Af: Valle Thorø Side 12 af 17

Af: Valle Thorø Side 13 af 17

Herunder ses en sammenligning mellem Flowchart og NS Traditionel flowchart NS Chart: Som I traditional flowchart er sekvens-retningen I NS også fra toppen og nedad. Her følger et par sammenhørende pseudokoder og deres NS diagram. Af: Valle Thorø Side 14 af 17

IF x = = 100 THEN IF x == 120 THEN IF x == 140 THEN DISPLAY 'A' ELSE DISPLAY 'B' ELSE DISPLAY 'C' ELSE DISPLAY 'D' ENDIF. Dette er et eksempel på en multiway selection. X = 1 REPEAT X = X + 1 DISPLAY X UNTIL X > 10 Et eksempel på et repeat loop. Processen X = X + 1 og DISPLAY X vil blive gentaget indtil X er større end 10. X = 0 Y = 0 DOWHILE X < 10 DISPLAY X REPEAT Y = Y + 1 UNTIL Y > 5 X = X + 1 Y = 0 END WHILE Et eksempel på en indlejret loop, en repeat-loop inden I en while loop. Pauseprogram tegnet med Nassi Shneidermann Af: Valle Thorø Side 15 af 17

FFh til R7 FFh til R6 Tæl R6 1 ned Indtil R6 = 0 Tæl R7 1 ned Indtil R7 = 0 Et Andet eksempel: Der findes nogle PC-programmer, der kan tegne Nassi-diagrammer?? http://www.fzjuelich.de/jsc/nassi/#downloads Dok: http://www.fz-juelich.de/jsc/docs/tki/tki_html/t0305/t0305.html Struktograaf. Der findes et program til Nassi Shneidermann Smartdraw, Diagramdesigner 1.23 ( Gratis ), Se video herom: http://www.mefeedia.com/watch/31894478 Af: Valle Thorø Side 16 af 17

edraw, mm. Se min hjemmeside, /downloads_el, og scroll ned til flowcharts. Af: Valle Thorø Side 17 af 17