Реклама:

(Снова измененные или новые строки отмечаются двумя звездочками. )

УПОРЯДОЧЕНИЕ поел

Открыть файлы, Читать А, Читать В Установить ключ =1 ** ТЕЛО УПОРЯДОЧЕНИЯ повт пока не ключ больше или **

равен 1000 **

ОБРАБОТКА ЗАПИСИ повт

ОБРАБОТКА ТЕЛА ЗАПИСИ выб услов (ключ = ** запись А = Запись В) ** ОБРАБОТКА СОПОСТАВЛЯЕМЫХ А + В поел Писать обновленную А-запись Читать А Читать В

ОБРАБОТКА СОПОСТАВЛЯЕМЫХ А + В конец ОБРАБОТКА ТЕЛА ЗАПИСИ или услов (запись **

А = ключ) ** ОБРАБОТКА НЕС0П0СТАВЛЯЕМ0И А поел Писать неизмененную А-запись Читать А

ОБРАБОТКА НЕС0П0СТАВЛЯЕМ0И А конец ОБРАБОТКА ТЕЛА ЗАПИСИ или услов (запись **

В = ключ) ** ОБРАБОТКА НЕС0П0СТАВЛЯЕМ0И В поел

Писать новую А-запись с подробностями первой транзакции

Читать В

ОБРАБОТКА НЕС0П0СТАВЛЯЕМ0И В конец ОБРАБОТКА ТЕЛА ЗАПИСИ или услов (пусто) ** ОБРАБОТКА ОТСУТСТВИЯ поел ** Писать неиспользованное значение **

ключа **

ОБРАБОТКА ОТСУТСТВИЯ конец ** ОБРАБОТКА ТЕЛА ЗАПИСИ конец

Установить ключ = ключ +1 ** ОБРАБОТКА ЗАПИСИ конец ТЕЛО УПОРЯДОЧЕНИЯ конец Закрыть файлы СТОП

УПОРЯДОЧЕНИЕ конец

Этот вариант программы упорядочения представляет собой стандартную версию слияния двух файлов, причем для каждого значения ключа существует максимум одно появление записи А и/или записи В. Иначе говоря, для каждого конкретного значения ключа появится максимум одна входная запись каждого из типов А и В.

К практическим версиям этого стандарта относятся уже рассмотренные варианты. Часто нам не потребуется заниматься всеми «пустыми» значениями ключа; тогда пригодится версия, показанная на рис. 6.5, со структурным изложением, приведенным на с. 139-140 этой главы. Кроме того, может понадобиться приспособление условия Конца-файла к запросам клиентов для специальных ситуаций.

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

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

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

Установить ключ = 1000 Установить ключ = ключ - 1

Или же если требуется обрабатывать только фактически используемые значения ключа при сортировке по убыванию, то операция перезаписи Ключа будет такой:

Установить ключ = Мах (А, В), причем значением ключа становится максимум из идентификаторов двух входных записей.

6.4. Модификация основной структуры программы упорядочения

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

Упорядочение для файла прямого доступа


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