Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ Глухова Лилия Александровна 2007.pdf
Скачиваний:
619
Добавлен:
15.06.2014
Размер:
921.37 Кб
Скачать

4.4.3.

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

Джексон

доказал, что конструкции, используемые для построения

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

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

входные

данные

и создающие

некоторые выходные .данныеСтруктура

выходных

данных

получается в

результате некоторого преобразовани

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

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

Пример 4.3.

Рассмотрим простейший пример. Пусть необходимо найти суммы элементов строк в таблице, состоящей из 10 строк и 8 столбцов.

Рисунок 4.21 иллюстрирует структуры данных, представляющие входные и выходные данные процесса. Очевидно, что между обеими структурами

имеется

непосредственная взаимосвязь. Компонент «Сумма

строки» из

структуры

«Выход» появляется

столько же ,разсколько раз

компонент

«Строка» появляется во входной структуре «Таблица» и в том же порядке.

 

 

Входная

 

Выходная

 

 

 

структура

 

структура

 

 

 

данных

 

данных

 

 

 

 

 

 

 

 

 

 

 

Таблица

 

Выход

 

 

 

 

 

 

 

 

 

Строка

*

(10)

Сумма

*

(10)

 

 

 

 

 

 

строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* (8)

Элемент

Рисунок 4.21 – Таблица: структуры входных и выходных данных

87

Соответствие

между

структурами

входных

и

выходных

данн

представляет рисунок 4.22. Линии соответствия между компонентами входной

и выходной структур

данных принято

 

изображать

жирной

линией

двусторонними стрелками.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица

 

 

Выход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*

 

Сумма

*

Строка (10)

(10)

 

 

 

строки

 

 

 

 

 

 

 

 

 

 

*

Элемент (8)

Рисунок 4.22 –Соответствие между структурами входных и выходных данных

Каждая пара соответствующих компонентов входных и выходных данных образует основу одного компонента программы. Поэтому простую структуру программы обработки таблиц можно создать, «сливая» соответствующие компоненты структур входных и выходных данных, то есть размещая вместо линий соответствия компоненты программы, которым присваивается соответствующее имя (рисунок 4.23).

Слияние двух повторяемых компонентов данных сформирует один повторяющийся компонент программы.

88

Вход

 

Программа

 

Выход

 

 

 

 

 

 

 

Таблица

 

Программа

 

Выход

 

обработки

 

 

 

 

 

 

 

 

 

 

таблицы

 

 

 

 

 

 

 

 

 

 

*

*

*

Строка

Обработка

Сумма

 

строки

строки

*

Элемент

 

Рисунок 4.23 – Соответствие данных и программы

 

 

Пример 4.4.

 

 

 

Рассмотрим более сложный пример. Пусть

результат

предыдущего

примера необходимо получить в виде отчета с заголовком и завершителем.

Структуры входных и выходных данных и соответствия

между

ними для

данного случая представляет рисунок 4.24.

 

 

 

На

первом подэтапе на основании линий

соответствия формируется

упрощенный вариант структуры программы (рисунок 4.25).

 

 

На

следующих подэтапах рассматриваются

те компоненты

структур

данных, которым ничего не соответствует.

 

 

 

На втором подэтапе рассматриваются компоненты во входной структуре данных, которые ничему не соответствуют.

Таким компонентом во входной структуре данных является«Элемент». Ему не соответствует ни один компонент в структуре выходных данных. Но он

образует

подкомпоненты, составляющие

компонент «Строка», а «Строка»

сливается

с компонентом«Сумма строки», формируя

компонент «Обработка

строки». Поэтому «Элемент» можно

трактовать

как

повторяемый

подкомпонент компонента «Обработка

строки» и

переименовать

его в

компонент «Обработка элемента» (рисунок 4.26).

 

 

 

89

Таблица

 

Отчет

 

 

 

 

 

 

 

 

 

 

*

Строка

Заголовок

Тело отчета

Завершитель

 

 

 

 

 

 

Элемент

*

 

 

 

 

 

*

 

 

 

 

Сумма

 

 

 

 

 

 

 

строки

 

 

 

 

 

 

Рисунок 4.24 – Расширенные структуры входных и выходных данных

Подэтап 1 Программа обработки таблицы

*

Обработка

строки

Рисунок 4.25 – Первый подэтап формирования структуры программы

90

Подэтап 2 Программа обработки таблицы

*

Обработка

строки

*

Обработка

элемента

Рисунок 4.26 – Второй подэтап формирования структуры программы

На третьем

подэтапе рассматриваются

компоненты

в

выходной

структуре данных, которые ничему не соответствуют. Этими компонентами

являются «Заголовок»,

«Тело отчёта», «Завершитель»

(см. рисунок 4.24). По

аналогии с компонентом «Элемент» каждый из этих компонентов помещается в

то относительное положение в структуре программы, в котором он появляется

в структурах

данных.

И соответственно меняется имя данных компонентов

(добавляется

слово «Получение», «Формирование»,

«Обработка»

и

т..п).

Рисунок 4.27 содержит полученную в результате структуру программы.

Таким образом, выше на простых примерах показан процесс генерации структуры программы из структур входных и выходных данных по методу Джексона. Следующий подраздел посвящен формализации этого процесса.

91