s21_tetris/materials/7 principles of structural programming.md
2024-02-22 10:34:16 +00:00

20 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Принципы структурного программирования
Становление и развитие структурного программирования связано с именем Эдсгера Дейкстры.
* Принцип 1. Следует отказаться от использования оператора безусловного перехода goto.
* Принцип 2. Любая программа строится из трёх базовых управляющих конструкций: последовательность, ветвление, цикл.
* Принцип 3. В программе базовые управляющие конструкции могут быть вложены друг в друга произвольным образом. Никаких других средств управления последовательностью выполнения операций не предусматривается.
* Принцип 4. Повторяющиеся фрагменты программы можно оформить в виде подпрограмм (процедур и функций). Таким же образом (в виде подпрограмм) можно оформить логически целостные фрагменты программы, даже если они не повторяются.
* Принцип 5. Каждую логически законченную группу инструкций следует оформить как блок. Блоки являются основой структурного программирования.
* Принцип 6. Все перечисленные конструкции должны иметь один вход и один выход.
* Принцип 7. Разработка программы ведётся пошагово, методом «сверху вниз» (top-down method).
Следствия и дополнения вышеизложенных принципов:
1. Запрет на использование глобальных переменных
2. Не более одного выхода из функции. Исключение составляет предварительная проверка аргументов функции.
3. Не более одного выхода из цикла - это может быть как условие, так и ключевое слово break
4. Вложенность любых блоков не должна превышать 4
5. Размер функций ограничен по строкам и составляет 40-50 строк
![goto](../misc/eng/images/GOTO.png)