Реклама:

Описать Ох значение 1 (Ох = 01) ПЕРЕЙТИ К 01, 02, 03 или 04 в зависимости от значения 0х

ОД: ПР.РЕДАКТИРОВАНИЯ поел Запомнить входной ИД

ТЕЛО ПР. РЕДАКТИРОВАНИЯ повт пока не КФ-Входной ОБР. СДЕЛКИ поел

ТЕЛО ОБР.СДЕЛКИ выб услов КОРРЕКТНАЯ Запомнить ИД записи Установить 0х значение 02 ВЕРНУТЬСЯ в программу упорядочения с записью сделки ТЕЛО ОБР.СДЕЛКИ или услов (НЕКОРРЕКТНАЯ)

(Ничего не делать) ТЕЛО ОБР. СДЕЛКИ конец 02: Установить 0х значение 03 ВЕРНУТЬСЯ в программу упорядочения с общей областью следующей входной1 записи

03: ОБР.СДЕЛКИ конец ТЕЛО ПР.РЕДАКТИРОВАНИЯ конец Установить 0х значение 04 ВЕРНУТЬСЯ в программу упорядочения с признаком КФ 04: ВЕРНУТЬСЯ в программу упорядочения ПР.РЕДАКТИРОВАНИЯ конец

Теперь программа редактирования стала настоящей подпрограммой. Когда программа упорядочения вызывает ее в первый раз, подпрограмма редактирования получает первую входную запись сделки. Если эта запись корректная, то она пересылается обратно в программу упорядочения. Затем эта входная запись обрабатывается программой упорядочения, и когда подпрограмма вызывается в следующий раз для другой редактируемой входной записи, вход в подпрограмму осуществляется по метке С}2, т.е. с немедленным возвратом общей области входных данных в программу упорядочения. Нередактированная входная запись помещается программой упорядочения в эту область, а затем передается подпрограмме по метке (^3. Эта метка фактически находится в конце повторения ТЕЛО ПР. РЕДАКТИРОВАНИЯ, и поэтому данный цикл перезапускается, и весь процесс повторяется, пока полученная от программы упорядочения запись не будет признаком КФ.

Если полученная запись считается некорректной, ^ процесс отличается только тем, что обратно в программу упорядочения не пишется никакой записи.

Читатель мог заметить, что при повторном инвертировании программы редактирования была добавлена четвертая метка (Эх. Эта заключительная метка, вероятно, никогда не будет использоваться. Нужда в ней может возникнуть лишь в том случае, если бы программа упорядочения обрабатывала входные данные после КФ, что само по себе является ошибкой.

Итак, процесс конструирования для программы состоит в следующем:

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

2. Изобразить структуры данных для этих последовательных файлов.

3. Сконструировать программу для обработки этих последовательных файлов с применением пяти этапов методики Джексона.

4. Инвертировать программу относительно входного и выходного файлов, сначала одного, потом другого.

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

7.8. Заключение

В этой главе мы продемонстрировали применение методики Джексона в ситуациях, которые на первый взгляд кажутся сложными. Эти ситуации характеризуются «столкновениями структур». Существуют три типа столкновения структур: порядковое столкновение, граничное столкновение, перемешанное столкновение.


⇐ Предыдущая страница| |Следующая страница ⇒