Лабораторная работа: Методология преобразования произвольной программы в структурированную

Цель работы : освоить методологию преобразования произвольной программы в структурированную.

Методические указания

Наиболее известными методами, позволяющими выполнить структурирование программ, являются: метод дублирования кодов программы, метод введения переменной состояния и метод булевых признаков.


Метод дублирования кодов . ?????????? ?????????, ????-????? ??????? ????????? ?? ??????? 1. ? ????????? ???? ????????? ?? ???????? ?????????????????; ?????? ???? ?? ????????????? ?????????? ????? ???? ? ???? ??????.

Чтобы получить структурированную программу, мы воспользуемся дублированием тех модулей, в которые можно войти из нескольких мест. Рассмотрим исходную программу как простую конструкцию типа IF-THEN-ELSE, показанную на рисунке 2.

Рисунок 2 -Упрощенное представление схемы по рисунку 1.


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


????? ???????? ? ????? ?????????, ??????? ????????? ???????

Рисунок 3 - Более подробное представление схемы.

или сети, но не может быть применен к циклическим программам.


????? ???????????? ????? ????? ??????????: ?? ??????? ?????? ??????, ??? ???????? ??????????????????? ??????. ?????? ????? ???????????, ??? ??????????? ?????? ???????? ?? 2-3 ?????????. ? ????? ?????? ???????????? ????? ? ?????????? ????? ?? ??????????? ???????? ????????????? ?? ?????? ?????????. ???? ?? ?????? ??????? ?? ????????????? ?????? ?????, ?? ???????? ????????????. ??? ???? ?????, ????? ??? ???? ???????????? ??? ???????????? ? ??????????? ???????????, ??? ???? ??????????? ?????????? ?? ???????????? ??? ??????????? ?? ?????????, ? ??????? ??? ????????????.

Метод введения переменной состояния . Метод применим к любым программам и допускает автоматическое применение. Процесс преобразования состоит из пяти шагов.


Рисунок 5 - Неструктурированная программа

1. Каждому блоку неструктурированной схемы приписывается номер.

2. В программу вводится новая переменная i целого типа.

3. Функциональные блоки неструктурированной схемы заменяются функциональными блоками, которые выполняют те же самые вычисления и присваивают переменной i целое значение, идентифицирующее номер блока-приемника исходной схеме.

4. Логические блоки исходной схемы преобразуются таким же образом.



?????? ????????????? ????-?????, ?????? ?? ?????, ?????????? ??

Рисунок 6 - Структурированная форма программы

Начальное значение i=1.

Затем последовательно выполняется опрос значений переменной i и т.д.


Рисунок 7 - Схема выполнения программы.

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

На рисунке 8 приведен пример построения программной функции циклической программы. В данном случае [P] рекурсивно зависит от f1 и f2.

а) циклическая программа



?) ?????? ??????????

в) вывод системы рекурсивных функций


??????? 8 - ?????? ?????????? ??????????? ???????

Недостатки метода:

- разрушается форма и топология исходной блок-схемы;

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

Достоинства метода:

- преобразованная введением переменной состояния форма может быть неограниченно продолжена, не усложняя при этомобщего подхода;

- облегчается документирование программы, т.к. каждому блоку исходной схемы соответствует определенное состояние программы;

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

Метод булевого признака . Существует еще один метод структурирования программ, содержащих циклы. Данный метод требует введения в программу некоторого признака задается в некоторой точке выше цикла; конструкциями типа DO-WHILE или REPEAT-UNTIL осуществляется управление циклом до тех пор, пока названный признак сохраняет заданное значение; некоторыми условиями внутри цикла определяется момент смены значения признака. Таким тбразом, программа продставляется в форме:

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 179
Бесплатно скачать Лабораторная работа: Методология преобразования произвольной программы в структурированную