Скачиваний:
60
Добавлен:
15.09.2014
Размер:
1.25 Mб
Скачать

2.21. Заключение по структурному программированию

Архитектор проектирует здания, используя совокупную мудрость и опыт, накопленные в его профессии. Так же должен поступать и программист. Наша область деятельности моложе, чем архитектура, и наш коллективный опыт существенно более ограничен. Мы усвоили, что структурное програм­мирование позволяет создавать программы более простые для понимания, чем нестуктурированные, более простые для проверки, отладки, модифика­ции и даже более корректные в математическом смысле.

Рис. 2.32 суммирует сведения по управляющим структурам в С++. Малые окружности использованы, чтобы отметить точки единственного входа и един­ственного выхода каждой структуры. Произвольное соединение отдельных символов блок-схем может привести к неструктурированным программам. Следовательно, профессиональное программирование заключается в выборе

IfcrpyKTypa (единственный выбор)

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

sHitch структура (множественный выбор)

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