O diagramă de flux este un tip comun de diagrame ( modele grafice ) care descriu algoritmi sau procese în care pașii individuali sunt reprezentați ca blocuri de diferite forme, conectate prin linii care indică direcția secvenței.
Când desenați elemente, se recomandă să respectați dimensiuni stricte, definite de două valori a și b . Valoarea a este selectată din intervalul 15, 20, 25.. mm, b este calculată din raportul 2⋅ a = 3⋅ b . Dimensionarea este consultativă, însă dacă dimensiunile sunt respectate, diagramele bloc au un aspect mai precis.
Simbolul afișează o funcție de prelucrare a datelor de orice fel (efectuarea unei anumite operații sau a unui grup de operații, care duce la o schimbare a semnificației, formei sau plasării informațiilor sau la determinarea căruia dintre mai multe direcții de flux ar trebui mutată).
Simbolul reprezintă date, purtătorul de date nu este definit.
Conversia datelor într-o formă adecvată pentru prelucrare (intrare) sau afișare a rezultatelor prelucrării (ieșire). Acest simbol nu definește suportul de date (simbolurile speciale sunt folosite pentru a indica tipul de suport de date).
Simbolul afișează un proces predefinit constând din una sau mai multe operații sau pași de program care sunt definiți în altă parte (într-o subrutină, modul). De exemplu, în programare, un apel la o procedură sau o funcție.
Un simbol reprezintă o funcție de tip de decizie sau de comutare care are o intrare și un număr de ieșiri alternative, dintre care una și numai una poate fi activată după evaluarea condițiilor definite în acest simbol. Rezultatele de calcul corespunzătoare pot fi scrise în vecinătatea liniilor care reprezintă aceste căi.
Afișează o decizie sau o funcție de tip comutator cu o intrare și două sau mai multe ieșiri alternative, dintre care doar una poate fi selectată după evaluarea condițiilor definite în cadrul acestui element. Intrarea într-un element este indicată printr-o linie care intră de obicei în vârful superior al elementului. Dacă există două sau trei ieșiri, atunci, de obicei, fiecare ieșire este indicată de o linie care iese din vârfurile rămase (lateral și de jos). Dacă există mai mult de trei ieșiri, atunci acestea ar trebui să fie afișate ca o singură linie care iese din partea de sus (adesea de jos) a elementului, care apoi se ramifică. Rezultatele corespunzătoare ale calculului pot fi scrise lângă liniile care reprezintă aceste căi. Exemple de soluții: în cazul general - comparație (trei ieșiri: >, <, =); în programare , operatori condiționali if(două ieșiri: true, false) și case(ieșiri multiple).
Simbolul reprezintă intrarea din mediul extern și ieșirea către mediul extern (începutul sau sfârșitul schemei de program, utilizare externă și sursa sau destinația datelor).
În practică, următoarele descrieri ale limitatoarelor au sens: pornire/sfârșit, pornire/oprire, repornire (implica o repornire a diagramei date), eroare (implica terminarea algoritmului cu o eroare), excepție (implica executarea o excepție software)
Simbolul din două părți reprezintă începutul și sfârșitul buclei. Ambele părți ale unui simbol au același identificator. Condițiile de inițializare, incrementare, terminare etc. sunt plasate în cadrul unui simbol la început sau la sfârșit, în funcție de locația operației care testează condiția.
Un exemplu de diagramă de flux pentru calcularea factorială folosind o buclă Exemplu de bucle imbricateSimbolul reprezintă o ieșire într-o parte a unui circuit și o intrare dintr-o altă parte a acelui circuit și este folosit pentru a rupe o linie și a o continua în altă parte. Caracterele conectorului corespunzătoare trebuie să conțină același desemnator unic.
Împărțirea algoritmului în două părți folosind conectoriSimbolul este folosit pentru a adăuga comentarii descriptive sau note explicative în scopul explicației sau notelor. Liniile întrerupte dintr-un simbol de comentariu sunt asociate cu simbolul corespunzător sau pot înconjura un grup de simboluri. Textul comentariilor sau notelor trebuie plasat lângă forma de delimitare.
De asemenea, un simbol de comentariu ar trebui utilizat în cazurile în care cantitatea de text plasată în interiorul unui anumit simbol (de exemplu, un simbol de proces, un simbol de date etc.) depășește dimensiunea acestui simbol în sine. Comentariile sunt folosite împreună cu terminatorii pentru a descrie argumentele de intrare ale unui algoritm atunci când descriu funcții.
Simbolul este reprezentat de două linii paralele, reprezentând sincronizarea a două sau mai multe operații paralele. Dacă mai multe operații intră în linii paralele, execuția algoritmului va continua doar dacă toate procesele de intrare se termină.
Acțiunile paralele pot fi utilizate pentru procese asincrone sau pentru procese a căror secvență nu este importantă. În exemplul prezentat, este de remarcat faptul că procesele create pe aceleași linii paralele nu trebuie să se termine și în paralel.
Descrierea altor elemente de circuit poate fi găsită în GOST relevant [1] . Elementele includ:
Ordinea acțiunilor este stabilită prin conectarea vârfurilor cu arce, ceea ce ne permite să considerăm diagramele de flux nu numai ca o interpretare vizuală a algoritmului, convenabilă pentru percepția umană, ci și ca un grafic direcționat (așa-numita diagramă grafică a algoritmului , GSA). O reprezentare similară a algoritmilor este utilizată în construcția sistemelor de control logic care implementează algoritmi de control dat, în sarcini de paralelizare a calculelor și așa mai departe.
O practică obișnuită și eronată este încercarea de a folosi diagrame de flux pentru a ilustra un algoritm la un nivel scăzut (la nivel de cod) - adică o încercare de a potrivi fragmente de cod dintr-un limbaj artificial în blocuri ale unei diagrame. Această abordare este aplicabilă numai programelor organizate conform abordării structurale și nu poate reflecta, de exemplu, un algoritm care este implementat în interacțiunea abstracțiilor într-o abordare orientată pe obiecte. În scopul descrierii algoritmilor, al interacțiunii părților sistemului și al ilustrarii multor alte lucruri înrudite, există notația UML . .