|
Программирование >> Структурное программирование
Правило 2 > ( ) Правило 2 Правило 2 Рис. 2.35. Повторное применение правила 2 к простейшей блок-схеме Правило 3 Правило 3 I Правило 3 Рис. 2.36. Повторное применение правила 3 к простейшей блок-схеме Правило 4 позволяет генерировать большие, сложные структуры с произвольным уровнем вложенности. Блок-схемы, возникаюш;ие в результате применения правил рис. 2.33, составляют множество всех возможных структурированных блок-схем и, следовательно, множество всех возможных структурированных программ. Прелесть структурного подхода в том, что мы используем всего семь простых фрагментов с одним входом и одним выходом и соединяем их всего двумя простыми способами. Рис. 2.37 показывает пакеты стандартных блоков, которые создаются при применении правила 2, и вложение стандартных блоков, которые создаются при применении правила 3. Этот рисунок показывает также частично перекрываюш;иеся стандартные блоки, которые не могут появиться в структурированных блок-схемах, поскольку игнорируется оператор goto. Если следовать правилам рис. 2.33, неструктурированные блок-схемы (подобные приведенным на рис. 2.38) не могут быть созданы. Если вы сомневаетесь, является ли некоторая конкретная блок-схема структурированной, примените правила рис. 2.33 в обратной последовательности и попытайтесь свернуть блок-схему к простейшей. Если блок-схема свернется к простейшей, значит исходная блок-схема структурирована, в противном случае - нет. Структурное программирование стимулирует простоту. Бом и Джакопини доказали, что достаточно всего трех форм управления: Следование Выбор Повторение Пакетированные стандартные блоки Вложенные стандартные блоки Частично перекрывающиеся стандартные блоки (недопустимые в структурированных профаммах) Рис. 2.37. Пакетированные, вложенные и частично перекрывающиеся стандартные блоки Рис. 2.38. Неструктурированная блок-схема Следование тривиально. Выбор осуществляется одним из трех способов структурой if (единственный выбор) структурой if/else (двойной выбор) структурой switch (множественный выбор) В действительности можно доказать, что для реализации любой формы выбора достаточно одной простой структуры if - все, что можно сделать структурами if/else и switch, можно представить комбинацией структур if (правда, может быть не так удобно). Повторение обеспечивается одним из трех способов: структурой while структурой do/while структурой for В действительности можно доказать, что для реализации любой формы повторения достаточно одной структуры while. Все, что можно сделать структурами do/while и for, можно представить структурой while (правда, может быть не так удобно). В результате можно утверждать, что любую форму управления, которая может потребоваться в программе на С-Ы-, можно выразить в терминах следование структура if (выбор) структура while (повторение) И эти управляющие структуры могут комбинироваться только двумя путями: пакетированием или вложением. Действительно, структурное программирование способствует простоте! В данной главе мы рассмотрели, как составлять программы из управляющих структур, содержащих только действия и выбор. В главе 3 мы познакомимся с другой структурной единицей программ, называемой функцией. Мы научимся составлять большие программы, комбинируя функции, которые, в свою очередь, состоят из управляющих структур. Мы увидим также, как применение функций способствует повторному использованию программных средств. В главе 6 мы ознакомимся еще с одной структурной единицей программ, называемой классом. В дальнейшем мы будем создавать объекты из классов и возобновим наше исследование объектно-ориентированного программирования. А пока мы продолжим знакомство с объектами, представив на рассмотрение проблему, которую читатель будет решать технологией объектно-ориентированного проектирования.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |