Структурне програмування

Структурне програмуванняметодологія програмування (модель конструювання програмного забезпечення), запропонована в 1970-х роках голландським науковцем Дейкстрою (Edsger Wybe Dijkstra), була розроблена та доповнена Ніклаусом Віртом. Ґрунтується на теоремі Бьома-Якопіні (Corrado Bohm, Giuseppe Jacopini), яка була опублікована у 1966 р.

Відповідно до цієї методології, будь-яку програму можна створити, використовуючи три конструкції:

  • послідовне виконання — одноразове виконання операції в порядку запису їх (операцій) в тексті програми;
  • розгалуження — виконання певної операції або декількох операцій залежно від стану певної, наперед заданої умови;
  • цикл — багаторазове виконання операції або групи операцій за умови виконання деякої наперед заданої умови. Таку умову називають умовою продовження циклу.

Кожна конструкція є блоком із одним входом і одним виходом.

Блок Послідовне виконання передбачає послідовне (лінійне) виконання операторів програми.

Блок Вибір є точкою прийняття рішення про подальший перебіг виконання операторів програми. Вибір здійснюється однією із трьох структур:

  • if (єдиний вибір)
  • if…else (подвійний вибір)
  • switch або case (множинний вибір)

Усі три структури можна звести до одного типу if.

Блок Повторення реалізується одним із трьох способів:

  • структура while
  • структура do/while
  • структура for

Усі три структури можна звести до структури while.

Структурована програма складається із вищеназваних блоків за двома правилами: пакетування (вихід одного блоку з'єднується із входом наступного) і вкладення (будь-який блок може бути замінений на структуру керування вибору або повторення).

Таким чином, структуровані програми містять всього сім типів структур керування, які з'єднуються всього двома способами.

Переваги:

  • такі програми легко створювати та тестувати;
  • скорочується термін розробки програми;
  • полегшується супровід програми
  • скорочення варіантів побудови програми, що знижує складність програмного забезпечення;
  • логічно зв'язані операції знаходяться ближче один до одного, що полегшує аналіз алгоритму, даючи змогу обходитись без блок-схем алгоритму (хоча наявність такої блок-схеми полегшує розуміння роботи алгоритму).

Недоліки:

  • непропорційне зростання складності програми у разі збільшення об'єму коду програми;
  • складність створення паралельних програм.

Див.також[ред. | ред. код]