блок-схема [Росія
- Основні елементи схем алгоритму
- процес
- дані
- зумовлений процес
- Рішення
- Термінатор
- цикл
- Приклад блок-схеми розрахунку факторіала з використанням циклу
- Приклад вкладених циклів
- З'єднувач
- Поділ алгоритму на дві частини з використанням з'єднувачів
- паралельні дії
- Подання алгоритмів у вигляді графів
- програми
- критика
Схема - графічне представлення визначення, аналізу або методу розв'язання задачі, в якому використовуються символи для відображення даних, потоку, обладнання та т. Д. 1)
Блок-схема - поширений тип схем (графічних моделей ), Що описують алгоритми або процеси, в яких окремі кроки зображуються у вигляді блоків різної форми, з'єднаних між собою лініями, що вказують напрямок послідовності. Правила виконання регламентуються ГОСТ 19.701-90 «Схеми алгоритмів, програм, даних і систем. Умовні позначення і правила виконання » 2) . Стандарт зокрема регулює способи побудови схем і зовнішній вигляд їх елементів.
Основні елементи схем алгоритму
При зображенні елементів рекомендується дотримуватися строгих розмірів, визначених двома значеннями a і b. Значення a вибирається з ряду 15, 20, 25 .. мм, b розраховується зі співвідношення 2a = 3b. Визначення розмірів несе рекомендаційний характер, проте, варто відзначити, що при дотриманні виконання розмірів блок-схеми мають більш акуратний вигляд.
процес
Символ відображає функцію обробки даних будь-якого виду (виконання певної операції або групи операцій, що приводить до зміни значення, форми або розміщення інформації або до визначення, за яким з декількох напрямків потоку слід рухатися).
дані
Символ відображає дані, носій даних не визначено.
Перетворення даних у форму, придатну для обробки (введення) або відображення результатів обробки (висновок). Даний символ не визначає носія даних (для вказівки типу носія даних використовуються специфічні символи).
зумовлений процес
Символ відображає зумовлений процес, що складається з однієї або декількох операцій або кроків програми, які визначені в іншому місці (в підпрограмі, модулі). Наприклад, в програмуванні - виклик процедури або функції.
Рішення
Символ відображає рішення або функцію перемикача типу, що має один вхід і ряд альтернативних виходів, один і тільки один з яких може бути активізований після обчислення умов, визначених всередині цього символу. Відповідні результати обчислення можуть бути записані по сусідству з лініями, що відображають ці шляхи.
Відображає рішення або функцію перемикача типу з одним входом і двома або більше альтернативними виходами, з яких тільки один може бути обраний після обчислення умов, визначених всередині цього елемента. Вхід в елемент позначається лінією, що входить зазвичай в верхню вершину елемента. Якщо виходів два або три, то зазвичай кожен вихід позначається лінією, що виходить з решти вершин (бічних і нижньої). Якщо виходів більше трьох, то їх слід показувати однією лінією, що виходить з вершини (частіше нижньої) елемента, яка потім розгалужується. Відповідні результати обчислень можуть записуватися поряд з лініями, що відображають ці шляхи. Приклади розв'язання: у загальному випадку - порівняння (три виходи:>, <, =); в програмуванні - умовні оператори if (два виходи: true, false) і case (безліч виходів).
Термінатор
Символ відображає вихід в зовнішнє середовище і вхід із зовнішнього середовища (початок або кінець схеми програми, зовнішнє використання і джерело або пункт призначення даних).
На практиці мають сенс такі описи термінаторів: початок / кінець, запуск / зупинка, перезапуск (має на увазі перезапуск даної блок-схеми), помилка (має на увазі завершення алгоритму з помилкою), виключення (має на увазі генерацію програмного виключення)
цикл
Символ, що складається з двох частин, відображає початок і кінець циклу. Обидві частини символу мають один і той же ідентифікатор. Умови для ініціалізації, збільшення, завершення і т.д. поміщаються всередині символу на початку або в кінці в залежності від розташування операції, перевіряє умову.
Приклад блок-схеми розрахунку факторіала з використанням циклу
Приклад вкладених циклів
З'єднувач
Символ відображає вихід в частину схеми і вхід з іншої частини цієї схеми і використовується для обриву лінії і продовження її в іншому місці. Відповідні символи-з'єднувачі повинні містити одне і те ж унікальне позначення.
Поділ алгоритму на дві частини з використанням з'єднувачів
коментар
Символ використовують для додавання описових коментарів або пояснювальних записів з метою пояснення або приміток. Пунктирні лінії в символі коментаря пов'язані з відповідним символом або можуть обводити групу символів. Текст коментарів або приміток повинен бути поміщений близько обмежує фігури.
Також символ коментаря слід використовувати в тих випадках, коли обсяг тексту, який вміщується всередині якогось символу (наприклад, символ процесу, символ даних і ін.), Перевищує розмір самого цього символу. Коментарі використовують спільно з терминаторами для опису вхідних аргументів алгоритму при описі функцій
паралельні дії
Символ представляється двома паралельними лініями, відображає синхронізацію двох або більше паралельних операцій. У разі входження декількох операцій в паралельні лінії, виконання алгоритму буде продовжено тільки в разі закінчення всіх вхідних процесів.
Паралельні дії можуть бути використані для асинхронних процесів або для процесів, послідовність яких не важлива. У представленому прикладі варто звернути увагу, що створені в одних паралельних лініях процеси не зобов'язані також паралельно закінчуватися.
Опис інших елементів схем можна знайти у відповідних ГОСТ (вказані вище). Серед елементів існують:
запам'ятовуються дані
документ
Ручне введення
Мапа
дисплей
Ручна операція
передача управління
Альтернативна зв'язок між двома або більше символами
та ін.
Подання алгоритмів у вигляді графів
Порядок виконання дій задається шляхом з'єднання вершин дугами, що дозволяє розглядати блок-схеми не тільки як наочну інтерпретацію алгоритму, зручну для сприйняття людиною, але і як зважений орієнтований граф (Т. Зв. Граф-схема алгоритму, ДСА). Подібне уявлення алгоритмів використовується при побудові систем логічного управління , Що реалізують задані керуючі алгоритми, в задачах розпаралелювання обчислень і т.д.
програми
вільні програми
комерційні програми
Онлайн-сервіси
У багатьох представлених програмах, крім ручного створення блок-схем, існують рішення для автоматичного створення блок-схем з вихідного коду програм.
критика
Поширеною і хибною практикою є спроба використання блок-схем для ілюстрації алгоритму на низькому рівні (на рівні коду) - тобто, спроба вписувати в блоки схеми фрагменти коду на будь-якому штучному мові. Такий підхід застосовується лише до програм, організованим згідно структурному підходу, і не може відобразити, наприклад, алгоритму, який реалізується у взаємодії абстракцій при об'єктно-орієнтованому підході. Для цілей опису алгоритмів, взаємодії частин системи і ілюстрації багатьох інших супутніх речей існує нотація UML .