ишку. Тим часом багато програми взагалі не потребують блок-схемах і лише дуже мало хто з них вимагають більше одного аркуша таких.
Блок-схеми показують структуру розгалуження програми тільки в одному її аспекті. Але навіть ця структура видна досить чітко, тільки якщо вся блок-схема поміщається на одній сторінці, і про неї дуже важко отримати гарне уявлення, якщо блок-схема розташовується на кількох аркушах, пов'язаних разом нумерованими стрілками.
Блок-схема, що на одній сторінці, для великої програми по суті перетворюється в загальний план програми, перелік її основних етапів або блоків, і, як така, вона дуже зручна. На рис. 15.1 показаний такий граф підпорядкованості підпрограм. p> Звичайно, такий граф і не слід стандартам блок-схем, і не потребує їх. Всі ці правила щодо виду елементів, стрілок, порядку нумерації і т. д. потрібні тільки для того, щоб можна було зрозуміти докладні блок-схеми.
В
рис.15.1. Приклад структури програми
Детальні блок-схеми, однак, застаріли; вони тільки заважають, і в кращому випадку придатні для навчання новачків, ще не вміють алгоритмічно мислити. У свій час запропоновані Голдстайном і Нейманом маленькі квадратики на блок-схемах разом зі своїм змістом виступали в якості мов високого рівня, об'єднуючи абсолютно незрозумілі оператори машинного мови в групи, що мають певний сенс. Як давно вже вказав в систематичному мові високого рівня така угруповання вже здійснена, так що кожен квадратик просто відповідає оператору (рис. 15.2). Тоді самі квадратики перетворюються на випадкове і непотрібне вправу з малювання, і від них можна відмовитися. Але тепер не залишається нічого, крім стрілок. Стрілки, з'єднують оператор з наступним за ним, не потрібні, зітремо їх. Залишаються тільки оператори переходу. Але якщо слідувати гарною практиці, а використовувати блокові структури для мінімізації числа операторів переходу, то залишиться зовсім/трохи стрілок, ось вони-то дуже сильно полегшують розуміння. Ці стрілки можна перенести прямо ні роздруківку програми і зовсім позбутися блок-схеми.
У дійсності блок-схеми набагато більше звеличуються, ніж використовуються на практиці. Я ніколи не бачив, щоб досвідчений програміст креслив блок-схеми, перш ніж написати програму. Коли стандарти організації вимагають блок-схем, то майже незмінно вони малюються після. Багато програмістські організації з гордістю користуються спеціальними програмами для побудови "цього незамінного інструменту програміста "по готовій машинній програмі. Я не вважаю цей універсальний досвід сумним проявом поганого топа, визнання в якому супроводжується нервовим сміхом. Навпаки, це свідчення здорового сенсу, урок, який проливає світло на справжню користь блок-схем.