
- •116 Глава 2
- •2.13. Основы повторения, управляемого счетчиком
- •2.14. Структура повторения for (цикл)
- •120 Глава 2
- •122 Глава 2
- •2.15. Пример использования структуры for
- •124 Глава 2
- •126 Глава 2
- •2.16. Структура множественного выбора switch
- •Глава 2
- •130 Глава 2
- •132 Глава 2
- •2.17. Структура повторения do/while
- •134 Глава 2
- •2.18. Операторы break и continue
- •Глава 2
- •2.19. Логические операции
- •138 Глава 2
- •Глава 2
- •2.21. Заключение по структурному программированию
- •IfcrpyKTypa (единственный выбор)
- •Глава 2
- •Глава 2
- •148 Глава 2
- •Глава 2
- •Глава 2
- •Глава 2
- •156 Глава 2
- •158 Глава 2
- •160 Глава 2
- •2.1. А) следование, выбор и повторение, b) if/else. С) управляемым счет чиком или определенным заранее, d) Метку, сигнал, флаг или лож ный сигнал.
- •162 Глава 2
- •164 Глава 2
- •166 Глава 2
- •168 Глава 2
- •170 Глава 2
- •172 Глава 2
- •174 Глава 2
- •176 Глава 2
- •178 Глава 3
- •Глава 3
- •3.3. Математические библиотечные функции
- •3.4. Функции
- •Глава 3
- •3.5 Определения функций
- •184 Глава 3
- •186 ГлаваЗ
- •3.6. Прототипы функций
- •188 Глава 3
- •3.7. Заголовочные файлы
- •3.8. Генерация случайных чисел
- •Глава 3
- •192 Глава 3
- •194 Глава 3
- •3.9. Пример: азартная игра
- •Глава 3
- •198 Глава 3
- •3.10. Классы памяти
- •200 Глава 3
- •3.11. Правила, определяющие область действия
- •202 Глава 3
- •204 Глава 3
- •3.12 Рекурсия
- •Глава 3
- •6) Значения, возвращаемые после каждого рекурсивного вызова
- •3.13. Пример использования рекурсии: последовательность чисел Фибоначчи
- •Глава 3
- •3.14. Рекурсии или итерации
- •212 Глава 3
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •3.15. Функции с пустыми списками параметров
- •214 Глава 3
- •3.16. Встраиваемые функции
2.21. Заключение по структурному программированию
Архитектор проектирует здания, используя совокупную мудрость и опыт, накопленные в его профессии. Так же должен поступать и программист. Наша область деятельности моложе, чем архитектура, и наш коллективный опыт существенно более ограничен. Мы усвоили, что структурное программирование позволяет создавать программы более простые для понимания, чем нестуктурированные, более простые для проверки, отладки, модификации и даже более корректные в математическом смысле.
Рис. 2.32 суммирует сведения по управляющим структурам в С++. Малые окружности использованы, чтобы отметить точки единственного входа и единственного выхода каждой структуры. Произвольное соединение отдельных символов блок-схем может привести к неструктурированным программам. Следовательно, профессиональное программирование заключается в выборе
do/while
структура
sHitch
структура (множественный
выбор)
IfcrpyKTypa (единственный выбор)
p
N)
W |sJ
П
fi
о ш
ш
I
ш о; CTi О тз
QJ
4- О
g
00 X
g
о
X
g
о
Следование
Выбор
if/else структура ^(двойной выбор)
Повторение while структура
Bl OD
fi>
Управляющие структуры 143
комбинаций символов, соответствующих ограниченному множеству управляющих структур, и в построении структурированных программ соответсвую-щим комбинированием управляющих структур двумя простыми способами. Для упрощения используются только структуры с единственным входом и единственным выходом, то есть имеющие только одну точку входа и одну точку выхода. Это упрощает формирование структурированных программ последовательным соединением управляющих структур: выход одной структуры подключается непосредственно ко входу следующей, т.е. управляющие структуры просто размещаются в программе одна за другой. Мы уже называли такой способ соединения «пакетированием управляющих структур». Правила построения структурированных программ позволяют также вкладывать структуры друг в друга.
На рис. 2.33 приведены правила формирования должным образом структурированных программ. Эти правила предполагают, что символ прямоугольника на блок-схеме может использоваться для того, чтобы указать любые действия, включая ввод и вывод информации.
Применение правил рис. 2.33 всегда приводит к структурированной блок-схеме, построенной чисто по принципу компоновки из стандартных блоков. Например, повторное применение правила 2 к простейшей блок-схеме приводит к структурированной блок-схеме, содержащей множество последовательных прямоугольников (рис. 2.35). Отметим, что правило 2 генерирует пакет управляющих структур; это правило можно назвать правилом пакетирования.
Правило 3 называется правилом вложения. Повторное применение правила 3 к простейшей блок-схеме приводит к блок-схеме чисто вложенных управляющих структур. Например, на рис. 2.36 прямоугольник простейшей блок-схемы сначала замещается структурой двойного выбора (if/else). Затем правило 3 снова прикладывается к обоим прямоугольникам в структуре двойного выбора, заменяя каждый из них новой структурой двойного выбора. Пунктирная рамка вокруг каждой из этих структур двойного выбора представляет прямоугольник, который был замещен.
Правила формирования структурированных программ |
1) Начинайте с простейшей блок-схемы (рис. 2.34). |
2) Каждый прямоугольник (действие) может быть замещен двумя последовательными прямоугольниками (действиями) |
3) Каждый прямоугольник (действие) может быть замещен любой управляющей структурой (следования, if, if/else, switch, while, do/while или for. |
4) Правила 2 и 3 могут применяться неограниченно и в любой последовательности. |
Рис. 2.34. Простейшая блок-схема
Рис. 2.33. Правила формирования структурированных программ
144