Структурне програмування— методологія програмування (модель конструювання програмного забезпечення), яку в 1970-х роках запропонував голландський науковець Дейкстра Едсгер (Edsger Wybe Dijkstra), була розроблена та доповнена Ніклаусом Віртом. Ґрунтується на теоремі Бьома-Якопіні (Corrado Bohm, Giuseppe Jacopini), опублікованій у 1966 р.
Відповідно до цієї методології, будь-яку програму можна створити, використовуючи три конструкції: послідовне виконання — одноразове виконання операції в порядку запису їх (операцій) в тексті програми; розгалуження — виконання певної операції або декількох операцій залежно від стану певної, наперед заданої умови; цикл — багаторазове виконання операції або групи операцій за умови виконання деякої наперед заданої умови. Таку умову називають умовою продовження циклу.
Кожна конструкція є блоком з одним входом і одним виходом.
Блок Послідовне виконання передбачає послідовне (лінійне) виконання операторів програми.
Блок Вибір є точкою прийняття рішення про подальший перебіг виконання операторів програми. Вибір здійснюється однією із трьох структур: if (єдиний вибір) if…else (подвійний вибір) switch або case (множинний вибір) Усі три структури можна звести до одного типу if.
Блок Повторення реалізується одним із трьох способів: структура while структура do/while структура for Усі три структури можна звести до структури while.
Структурована програма складається із вищеназваних блоків за двома правилами: пакетування (вихід одного блоку з'єднується із входом наступного) і вкладення (будь-який блок може бути замінений на структуру керування вибору або повторення).
Таким чином, структуровані програми містять всього сім типів структур керування, які з'єднуються всього двома способами.
Переваги: такі програми легко створювати та тестувати; скорочується термін розробки програми; полегшується супровід програми скорочення варіантів побудови програми, що знижує складність програмного забезпечення; логічно зв'язані операції знаходяться ближче один до одного, що полегшує аналіз алгоритму, даючи змогу обходитись без блок-схем алгоритму (хоча наявність такої блок-схеми полегшує розуміння роботи алгоритму).
Недоліки: непропорційне зростання складності програми у разі збільшення об'єму коду програми; складність створення паралельних програм.
Див.також
Потік керування Базові алгоритмічні структури