Турное програмування з точки зору блок-схем

Двома теоретиками, Дж. Бойм і Ф. яком, доведено, що будь-яку програму, що реалізовує відповідну логіку цієї програми можна скласти тільки з 3 основних структур: слідування, розвилка, повторення.

Ця дія, яку потрібно зробити. Позначається прямокутником, в який входить і з якого виходить рівно одна лінія управління. Цей прямокутник називається вузлом обробки. або функціональним вузлом.

Дія «а», що визначене в цьому прямокутнику може бути окремим оператором, викликаний з поверненням окремої програми іншої керуючої структурою або декількома керуючими структурами, що утворюються підпрограми.

Позначення перевірки. Визначається символом, який називається прідікартним вузлом. Він являє собою ромб, в який входить одна лінія управління, а виходить дві. «Р» позначають умова, яке необхідно перевірити. В результаті перевірки вибирається один з виходів: істина або брехня.

Позначення злиття. Це гурток, де з'єднуються шляху управління. У цьому вузлі нічого не робиться: це з'єднання з двома входами і одним виходом.

Сполучні лінії. Зображують передачі управління від одного з перерахованих вище позначень до інших в напрямку стрілки.

Дотримання. Знімає керування передається від одного позначення обробки до наступного.

Розвилка. Якщо / то / інакше - структура, яка служить для вибору однієї з двох альтернатив.

Спочатку обчислюється логічний вираз «р», яке може бути або окремою змінною, що належить значенням «істина» / «брехня», або комбінацією цієї змінної. Розвилка повністю реалізує структуру якщо / то / інакше.

Служить для зображення повторень або циклів, які зустрічаються майже у всіх програмах.

У цій структурі управління проходить через вузол злиття до позначення перевірки. Тут здійснюється логічне вираз «р». Якщо воно істинне, то виконується дія «а» і слова «р». Якщо воно брехня, то «а» не виконується. Оскільки вираз «р» обчислюється до початку виконання дії, може трапиться так, що ця дія може не виконатися жодного разу. Якщо «р» містить керовану змінну, початкове значення якого було присвоєно до початку циклу, то при виконанні дії «а», то значення змінної змінюється.

Тут в залежності від попередньої ситуації. Перевірка здійснюється після виконання «а», а в циклі «поки» перед його виконанням. Таким чином, цикл «do» незалежно від значення «р» буде виконаний хоча б 1 раз. Цикл завершується коли змінна «р» стає справжньою, а в циклі «поки» - коли помилкова величина.

Є узагальненням розвилки.

Тут, як в якщо / то / інакше шляху, після різних дій сходяться в одній точці. Управління від точки входу завжди потрапляє в точку виходу. Вибір же шляху повністю визначається перевіркою.

14.Пошаговая деталізація.

Дуже відомий метод, що дозволяє деталізувати (уточнювати) програму. Кожен крок цього процесу включає в себе: розкладання функції модуля на підфункції. В кінцевому підсумку ці підфункції перетворюються в кроки потрібної програми. Цей процес подібний до низхідному проектування програми, при якому схема ієрархії використовується як засіб розкладання програми на складові її модулі. Схема ієрархії показує функції і їх підпорядкування, але не проявляє внутрішню логіку кожного модуля. Покрокова деталізація застосовується для декомпозиції функції кожного модуля відповідно до внутрішньою логікою, необхідної для виконання модулем цієї функції. Термін покрокової деталізації на увазі уточнення на кожному кроці програми, причому перший крок може бути дуже загальним (складною функцією). Подальше розкладання першого загального кроку превращ в дальн. другого або більш низького рівня, змушуючи більш точно визна логіку модуля, що є деталізацією формулювання завдань. Деталізація окремих програмних модулів пов'язана з функціональними розширеннями і графічним зображенням наступним чином: Праворуч від уточнюється рядки необхідно намалювати дужку, а потім за неї наводять детальні рядки і т.д. При використанні псевдокоду для покрокової деталізації на кожному новому проході логіка роботи модуля описується все точніше. Коли кожне речення псевдокоду безпосередньо переводяться в один або два пропозиції мови програмування, то можна вважати, що процес покрокової деталізації завершено. Таким чином, пропозиція на псевдокоді на найпершому рівні є дуже загальним (обробити запит). Проміжний рівень деталізації - оновити основному записі; найнижчий рівень - збільшити лічильник записи.

Блок-схеми для покрокової деталізації. Є універсальним інструментом програміста і ними також можна користуватися для покрокової деталізації. Однак, якщо алгоритм є великим і розгалуженим, то тоді він замінюється на псевдокод.

Існує кілька загальних принципів, яких слід дотримуватися незалежно від того, чи застосовуєте ви блок-схеми або псевдокод для методу покрокової деталізації.

1.Не поспішайте займатися дрібницями (не вдаватися в деталі занадто рано, концентруйте свою увагу на самому істотному).

2.Тщательно зважуйте прийняті рішення (намагайтеся зрозуміти наслідки того, що робиться вами).

3.Внімательно стежте за даними.

4.Будьте готові скасувати раніше прийняті рішення.

Сегментування - програмні модулі, які дуже великі (100-200 операторів) можуть бути розбиті на сегменти.

Сегмент - це логічна і фізична частина модуля. Логічна частина - це подфункция функції, фізична частина обмежується числом рядків вихідного тексту, що міститься на 1 сторінці (50-60 рядків).