Программирование >>  Структурное программирование 

1 ... 47 48 49 [ 50 ] 51 52 53 ... 342


7 == X, то программист, по ошибке заменивший операцию == операцией =, будет защищен компилятором. Компилятор воспримет такую ошибочную подмену как синтаксическую ошибку, так как слева в операторе присваивания может стоять только имя переменной. Это во всяком случае защитит от крайне неприятной логической ошибки во время выполнения.

Имена переменных относятся к так называемым L-величинам (lvalue - левая величина, левое значение), которые могут использоваться слева от операции присваивания. Константы относятся к так называемым R-величинам (rvalue - правая величина, правое значение), которые могут использоваться только справа от операции присваивания. Отметим, что L-величины могут использоваться как R-величины, но не наоборот.

Хороший стиль программирования 2.29

Если выражение проверки равенства содержит переменную и константу, например, X == 1, некоторые программисты предпочитают записывать подобные выражения, помещая константу слева, а имя переменной справа, чтобы предохранить себя от логической ошибки при случайной подмене операции == операцией =.

Противоположная ошибка может быть столь же неприятной. Предположим, программист хотел присвоить значение переменной простым оператором типа

X = 1;

НО случайно написал

X == 1;

Это тоже не является синтаксической ошибкой. Компилятор просто расценит это как условное выражение. Если х равно 1, это условие истинно и выражение возвращает значение 1. Если х не равно 1, условие ложно и выражение возвращает значение 0. Независимо от того, какое значение возвращается, операция присваивания отсутствует, так что это значение просто потеряется и значение х останется неизменным, что, вероятно, вызовет логическую ошибку выполнения. К сожалению, мы не знаем простого приема, который мог бы помочь вам в решении этой проблемы!

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

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

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



о

s Р м

W N1

а 2:

о ш ш I

ш СП

00 S

+ о I

g I S

g о 2

Следование

Выбор

if структура (единственный выбор)

if/else структура (двойной выбор)


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


break

break


break

Повторение while структура


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


В) В)



правила формирования структурированных программ

1) Начинайте с простейшей блок-схемы (рис. 2.34).

2) Каждый прямоугольник (действие) может быть замещен двумя последовательными прямоугольниками (действиями)

3) Каждый прямоугольник (действие) может быть замещен любой управляющей структурой (следования, if, if/else, switch, while, do/while или for.

4) Правила 2 и 3 могут применяться неограниченно и в любой последовательности.

Рис. 2.33. Правила формирования структурированных программ

Рис. 2.34. Простейшая блок-схема

комбинаций символов, соответствующих ограниченному множеству управляющих структур, и в построении структурированных программ соответсвую-щим комбинированием управляющих структур двумя простыми способами. Для упрощения используются только структуры с единственным входом и единственным выходом, то есть имеющие только одну точку входа и одну точку выхода. Это упрощает формирование структурированных программ последовательным соединением управляющих структур: выход одной структуры подключается непосредственно ко входу следующей, т.е. управляющие структуры просто размещаются в программе одна за другой. Мы уже называли такой способ соединения пакетированием управляющих структур . Правила построения структурированных программ позволяют также вкладывать структуры друг в друга.

На рис. 2.33 приведены правила формирования должным образом структурированных программ. Эти правила предполагают, что символ прямоугольника на блок-схеме может использоваться для того, чтобы указать любые действия, включая ввод и вывод информации.

Применение правил рис. 2.33 всегда приводит к структурированной блок-схеме, построенной чисто по принципу компоновки из стандартных блоков. Например, повторное применение правила 2 к простейшей блок-схеме приводит к структурированной блок-схеме, содержащей множество последовательных прямоугольников (рис. 2.35). Отметим, что правило 2 генерирует пакет управляющих структур; это правило можно назвать правилом пакетирования.

Правило 3 называется правилом вложения. Повторное применение правила 3 к простейшей блок-схеме приводит к блок-схеме чисто вложенных управляющих структур. Например, на рис. 2.36 прямоугольник простейшей блок-схемы сначала замещается структурой двойного выбора (if/else). Затем правило 3 снова прикладывается к обоим прямоугольникам в структуре двойного выбора, заменяя каждый из них новой структурой двойного выбора. Пунктирная рамка вокруг каждой из этих структур двойного выбора представляет прямоугольник, который был замещен.



1 ... 47 48 49 [ 50 ] 51 52 53 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика