Flowcharts
De conducere - o abstractizare a unui proces sau sistem care afișează vizual cea mai importantă parte. Schemele sunt utilizate pe scară largă încă din cele mai vechi timpuri până în prezent - desenele de piramide antice, hărți de teren, diagrame de circuit. Evident, marinarii vechi ar dori să facă schimb de cărți și, astfel au dezvoltat un sistem unificat de simboluri și reguli pentru punerea în aplicare a acestora. Acorduri similare au fost elaborate pentru imaginea scheme de algoritmi și GOST securizat și standardele internaționale.
În România există un sistem unic pentru documentația de program (ESPD). o parte din care este standardul de stat - GOST 19.701-90 „Programul organigrame, date și sisteme“. [1] În ciuda faptului că este descris în notație standard poate fi utilizat pentru circuitele de imagine a resurselor de sistem, programele și schemele de interacțiune, cum ar fi Acest articol descrie dezvoltarea unui program de scheme de algoritmi.
Vizualizata GOST corespunde aproape complet cu standardul internațional ISO 5807: 1985.
organigrame elemente
Există, de asemenea, alte tipuri de linii utilizate, de exemplu, pentru o diagrame bloc de imagine de algoritmi paralele, dar ele sunt in articolul curent, precum și un număr de caractere specifice, nu sunt luate în considerare. Considerate doar personajele principale, care întotdeauna elevii suficient.
începutul și sfârșitul Terminator a funcției
operațiunile de intrare și de ieșire de date
Efectuarea operațiunilor pe date
Unitatea operație este de obicei plasat una sau mai multe (GOST interzice) operațiunile de atribuire nu necesită funcții externe un apel.
Bloc a algoritmului de ramificare
Blocați diamant are o intrare și mai multe ieșiri semnate. Dacă blocul are două ieșiri (corespunde sucursalei operatorului), acestea sunt semnate de rezultatul comparației - „Da / Nu“. În cazul în care blocul dintr-un număr mai mare de linii (select), este scris în numele variabilei, și arce de ieșire - valoarea acestei variabile.
Apelarea procedurilor externe
Apelarea procedurilor externe și funcții plasate în cutia cu linii verticale suplimentare.
Începutul și sfârșitul ciclului
Simboluri începutul și la sfârșitul ciclului conține numele și starea. Condițiile pot fi absente intr-unul din perechea de caractere. condițiile de locație, operatorul determină tipul de simboluri pe limba de nivel înalt corespunzător - operator cu o condiție prealabilă (în timp) sau postconditie (do ... în timp ce).
simbol „Pregătirea datelor“, sub orice formă (GOST nici o explicație sau exemple), setează valorile de intrare. utilizate în general pentru a seta ciclurile contra.
Dacă schema bloc nu se potrivește pe foaie, conectorul este utilizat simbol, o tranziție între flux reflectorizante management foaie. Simbolul poate fi utilizat pe o singură foaie, în cazul în care pentru orice motiv, linia de tragere nu este convenabil.
Exemple organigrame
Ca exemple, diagrame bloc sunt construite din algoritmul de sortare foarte simplu, cu accent pus pe diferitele implementari ale ciclurilor de la elevii fac cel mai mare număr de erori în această parte.
sortarea inserturi
Array la algoritmul de inserare de sortare este împărțit în parte sortate și nu au fost încă prelucrate. Inițial parte sortat constă dintr-un singur element, și, treptat, crește.
La fiecare pas al algoritmului selectează primul element neprocesate din matrice și inserate în sortat, astfel încât acesta își păstrează ordinea dorită a elementelor. Inserția poate fi realizată la sfârșitul șirului și în mijloc. Atunci când introdus în mijloc este necesară pentru a muta toate elementele Punct de „dreapta“ inserție pe un element la dreapta. Algoritmul folosește două cicluri - elementele întâi selectate ale părții netratate, iar a doua inserție se face.
O diagramă bloc a unui inserturi algoritmului de sortare
In schema bloc de mai sus este utilizat pentru caractere ramificare buclă. În bucla principală (i Diagrama bloc arată cum poate fi utilizat simbolul de tranziție - acesta poate fi utilizat nu numai pentru părțile de conectare ale circuitelor plasate pe foi diferite, dar, de asemenea, pentru reducerea numărului de linii. În unele cazuri, se evită intersecția liniilor și simplifică algoritmul de percepție. sortare veziculei. precum și un fel de inserare. Se utilizează două cicluri. In bucla imbricată se realizează elemente de comparație în pereche și, în cazul în care ordinea lor, permutarea. Ca urmare a execuției o iterație buclă internă este garantată a fi elementul maxim în matrice este părtinitoare capăt. Bucla exterioară este executată atâta timp cât întreaga matrice nu vor fi sortate.cu bule de sortare
O diagramă bloc a unui algoritm de sortare cu bule
selecție Sortare
Sortarea Opțiunea matrice este împărțit într-un sortat și o porțiune netratată. Inițial, porțiunea de sortat este gol, dar crește treptat. Algoritmul caută minim de elementul porțiunea netratată și își schimbă pozițiile sale cu primul element al aceleiași părți, după care se crede că primul element este procesat (porțiunea sortate este crescută).
O schemă bloc pentru acest tip
Pe blog puteți găsi alte exemple de diagrame bloc:
Unii studenți au încercat în mod tradițional să elaboreze o schemă logică în Microsoft Word. dar este dificil și nu ușor de utilizat. De exemplu, în MS Word nu bloc standard pentru începutul terminator și sfârșitul algoritmului (un dreptunghi cu margini rotunjite, mai degrabă decât de formă ovală). Cel mai convenabil, în opinia mea, sunt utilitățile MS Visio și Yed [5], ambele care permit mult mai mult decât a construi o diagramă bloc (de exemplu, desena diagrame UML), dar primul este plătit și funcționează doar pe Windows, al doilea este liber și krossplatfomrennaya. Toate diagramele de flux din acest articol sunt realizate folosind Yed.
Nu au nevoie de organigrame? alternative
birouri private nu organigrame nu este utilizat în cărți pe algoritmi [6] este utilizat în locul descrierii verbale (pseudocod) ca o formă mai concisă. Poate că organigrame se aplică întreprinderilor de stat, care trebuie să emită documentație în conformitate cu cerințele din ESPD. dar există dubii - chiar și pentru înregistrarea în Registrul de stat al programelor pe calculator nu organigrame nu sunt necesare.
Cu toate acestea, pentru a desena organigrame face pe elevi (exemple din manuale nu îndeplinesc GOST) - propun teme pentru examenele publice (DPA și la examenul), studenți - la protecția diplomei este de control normativ, care să verifice standardele sistemele de conformitate.
Dezvoltarea de diagrame de flux se realizează pe etapele de proiectare și documentare, conform modelului cascadă de dezvoltare de software, care este greu de folosit acum, deoarece însoțită de riscuri ridicate asociate cu erori în etapele de proiectare.
Există suspiciuni că sistemul de învățământ este putred și a căzut în urmă cu 20 de ani, dar aceeași problemă apare și în străinătate. Standardul internațional ISO 5807: 1985 nu este cu mult diferit de GOST 19.701-90. un nou standard de nu în străinătate. Există, de asemenea, a produs o varietate de programe pentru punerea în aplicare a acestor scheme - Dia, MS Visio, Yed, ..., așa că scrie-le nu vor. In schimb flowcharts folosit uneori diagrama de activitate UML [6], dar acestea sunt mai convenabile, cu excepția faptului că reprezentarea unor algoritmi paraleli.
Din când în când se pune întrebarea că orice diagrame de flux. UML nu doresc nici, și documentație nu este, de asemenea, necesară. Aceasta repeta programatori adere la Extreme Programming metodologie (XP) [7], pentru a merge pe jos nu există nici un consens, chiar și în cercul lor.
În unele cazuri, programarea nu este posibilă fără desen organigrame, deoarece este un proces - există limbaje de programare vizuale, cum ar fi Dragon [8] În plus, organigrama utilizat pentru algoritmii de verificare (dovada formală a corectitudinii) prin inductiv susține Floyd [9].
În general, nu există nici un consens. Evident, există zone în care, fără ceva cum ar fi organigrame nu fie, dar există o alternativă mai flexibilă. Pentru verificare formală este necesar să se elaboreze o schemă bloc detaliată, dar pentru proiectarea și documentarea unor astfel de sisteme nu au nevoie - cred că o afirmație rezonabilă de programatori extreme, care trebuie să atragă numai acele sisteme care ajuta să funcționeze și nu necesită o mulțime de efort pentru a menține la zi [10].