Blockdiagram

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 1 oktober 2021; kontroller kräver 4 redigeringar .

Ett flödesschema  är en vanlig typ av diagram (grafiska modeller ) som beskriver algoritmer eller processer där enskilda steg avbildas som block av olika former, sammankopplade med linjer som indikerar sekvensens riktning.

Grundläggande element i algoritmscheman

När du ritar element rekommenderas det att följa strikta storlekar, definierade av två värden a och b . Värdet a väljs från intervallet 15, 20, 25.. mm, b beräknas från förhållandet 2⋅ a = 3⋅ b . Dimensionering är rådgivande, men om dimensionerna beaktas får blockdiagrammen ett mer exakt utseende.

Åtgärd

Symbolen visar en databehandlingsfunktion av vilket slag som helst (att utföra en viss operation eller grupp av operationer, vilket leder till en förändring i betydelsen, formen eller placeringen av information, eller till att bestämma vilken av flera flödesriktningar som ska flyttas).

Data (I/O)

Symbolen representerar data, databäraren är inte definierad.

Konvertera data till en form som lämpar sig för bearbetning (inmatning) eller visning av bearbetningsresultat (output). Denna symbol definierar inte datamediet (speciella symboler används för att indikera typen av datamedium).

Fördefinierad process (funktion)

Symbolen visar en fördefinierad process som består av en eller flera operationer eller programsteg som är definierade på annat håll (i en subrutin, modul). Till exempel, vid programmering, ett anrop till en procedur eller funktion.

Fråga (villkor eller lösning)

En symbol representerar en besluts- eller växlingstypsfunktion som har en ingång och ett antal alternativa utgångar, varav en och endast en kan aktiveras efter att ha utvärderat de villkor som definieras i denna symbol. Motsvarande beräkningsresultat kan skrivas i närheten av linjerna som representerar dessa banor.

Visar ett omkopplartypsbeslut eller funktion med en ingång och två eller flera alternativa utgångar, av vilka endast en kan väljas efter att ha utvärderat de villkor som definieras inom detta element. Ingången till ett element indikeras av en linje som vanligtvis går in i elementets övre vertex. Om det finns två eller tre utgångar, så indikeras vanligtvis varje utgång med en linje som kommer ut från de återstående hörnen (sida och botten). Om det finns fler än tre utgångar, bör de visas som en enda linje som kommer ut från toppen (ofta botten) av elementet, som sedan förgrenar sig. Motsvarande beräkningsresultat kan skrivas bredvid linjerna som representerar dessa banor. Lösningsexempel: i det allmänna fallet - jämförelse (tre utgångar: >, <, =); i programmering , villkorliga operatorer if(två utgångar: true, false) och case(flera utgångar).

Begränsare

Symbolen representerar input från den externa miljön och utdata till den externa miljön (början eller slutet av programschemat, extern användning och källa eller destination för data).

I praktiken är följande beskrivningar av begränsarna meningsfulla: start/slut, start/stopp, omstart (antyder en omstart av det givna flödesschemat), fel (antyder att algoritmen avslutas med ett fel), undantag (antyder exekvering av ett programvaruundantag)

Cykla

Den tvådelade symbolen representerar början och slutet av slingan. Båda delarna av en symbol har samma identifierare. Villkor för initiering, inkrementering, avslutning, etc. placeras inom en symbol i början eller slutet, beroende på platsen för operationen som testar tillståndet.

Ett exempel på ett flödesschema för beräkning av faktorial med hjälp av en slinga Exempel på kapslade loopar

Connector

Symbolen representerar en utgång till en del av en krets och en ingång från en annan del av den kretsen, och används för att bryta en linje och fortsätta den någon annanstans. Motsvarande anslutningstecken måste innehålla samma unika beteckning.

Dela upp algoritmen i två delar med hjälp av kontakter

Kommentar

Symbolen används för att lägga till beskrivande kommentarer eller förklarande anteckningar i syfte att förklara eller anteckna. Streckade linjer i en kommentarsymbol är associerade med motsvarande symbol eller kan omringa en grupp symboler. Texten i kommentarer eller anteckningar ska placeras nära den avgränsande formen.

Dessutom bör en kommentarsymbol användas i de fall där mängden text placerad inuti en viss symbol (till exempel en processsymbol, en datasymbol, etc.) överstiger storleken på denna symbol i sig. Kommentarer används tillsammans med terminatorer för att beskriva inmatningsargument för en algoritm när funktioner beskrivs.

Parallella åtgärder

Symbolen representeras av två parallella linjer, som representerar tidpunkten för två eller flera parallella operationer. Om flera operationer går in i parallella linjer kommer exekveringen av algoritmen att fortsätta endast om alla inkommande processer avslutas.

Parallella åtgärder kan användas för asynkrona processer eller för processer vars sekvens inte är viktig. I det presenterade exemplet är det värt att notera att de processer som skapas i samma parallella linjer inte behöver sluta parallellt också.

Beskrivning av andra kretselement finns i relevant GOST [1] . Elementen inkluderar:

  • Lagrade data
  • Dokumentera
  • Manuell inmatning
  • Karta
  • Visa
  • Överföring av kontroll
  • Alternativ relation mellan två eller flera karaktärer
  • och så vidare.

Representation av algoritmer som grafer

Handlingsordningen ställs in genom att koppla hörnen med bågar, vilket gör att vi kan betrakta flödesdiagram inte bara som en visuell tolkning av algoritmen, bekvämt för mänsklig perception, utan också som en riktad graf (det så kallade grafdiagrammet för algoritmen ) , GSA). En liknande representation av algoritmer används i konstruktionen av logiska styrsystem som implementerar givna styralgoritmer, i uppgifter att parallellisera beräkningar , och så vidare.

Kritik

En vanlig och felaktig praxis är att försöka använda flödesscheman för att illustrera en algoritm på en låg nivå (på kodnivå) - det vill säga ett försök att passa in kodfragment på något konstgjort språk i block av ett diagram. Detta tillvägagångssätt är endast tillämpligt på program organiserade enligt det strukturella tillvägagångssättet och kan inte reflektera till exempel en algoritm som implementeras i samspelet mellan abstraktioner i ett objektorienterat tillvägagångssätt. För att beskriva algoritmer, samspelet mellan delar av systemet och illustrera många andra relaterade saker, finns UML- notation. .

Anteckningar

  1. GOST 19.701-90. Schema av algoritmer, program, data och system. Konventioner och verkställighetsregler . Hämtad 23 maj 2007. Arkiverad från originalet 1 juni 2007.