Информатика и технология программирования


Нисходящее пошаговое структурное проектирование - часть 2


Попытаемся продемонстрировать это на исключительно абстрактных примерах.

.


Формулировка 1: Сделать "что-то" с переменной i
Формулировка 2: i=0;
Сделать "что-то немного другое"
Если i изменилось, сделать "что-то еще"

.


Формулировка 1: Сделать "что-то" с массивом А размерности n.
Формулировка 2: int i;
for (i=0; i&#60n; i++)
{
Проверить и если нужно, сделать
"что-то" с A[i]
}

.


Формулировка 1: Сделать "что-то" с целой переменной B
Формулировка 2: if (B "такое-то")
{ Сделать "одно" }
else
{ Сделать "другое" }

Примеры нарочно выбраны таким образом, чтобы их конкретное содержание не мешало восприятию самого принципа: конструкции языка программирования замещают словесную формулировку алгоритма "сверху-вниз", действие общего вида превращается в формальную конструкцию, содержащую частные действия, но тоже в неформальной словесной формулировке. В результате проектирования получается программа, в которой принципиально отсутствует оператор перехода goto, поэтому структурное программирование иначе называется как "ПРОГРАММИРОВАНИЕ БЕЗ GOTO".

Процесс проектирования программы является пошаговым, ибо предполагает каждый раз замену одной словесной формулировки на единственную конструкцию языка. Но в процессе разработки программы могут быть и другие шаги, связанные с детализацией самой словесной формулировки в более подробную. Обратимся в вышеприведенному примеру.

.


Формулировка 1: Сделать "что-то" с массивом А размерности n.

.


Формулировка 1а: Для каждого элемента массива
выполнить проверку и, если нужно, сделать "что-то" с ним.

.


Формулировка 2: int i;
for (i=0; i&#60n; i++)
{ Проверить и если нужно, сделать "что-то" с A[i] }

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

То, что этот пошаговое проектирование выделено отдельно, говорит о необходимости предотвратить соблазн детализации программы сразу от начала до конца и развивать умение выделять и сосредотачивать внимание на главных, а не второстепенных деталях алгоритма.




Начало  Назад  Вперед



Книжный магазин