Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
файлы.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
525.82 Кб
Скачать

18. (Контроль ключевого поля.) в каждой компоненте файла кадры содержится:

- табельный номер (служащего);

- контрольная цифра;

- данные (о служащем).

Табельный номер - это целое число, записанное 6 цифрами. Контрольная цифра служит целям обнаружения ошибок в табельном номере, возникающих по тем или иным причинам. Правильное значение контрольной цифры равно где - значение соответствующих цифр - в табельном номере . Целям контроля служит и контрольная сумма, вычисляемая как сумма по 1000000 табельных номеров всех служащих. Контрольная сумма записывается з поле "табельный номер" в последней компоненте файла (эта компонента не содержит данных о служащем, а служит только целям контроля). Выполнить следующие действия над файлом:

а) Проверить файл на синтаксическую правильность табельных номеров. Для каждого нарушения (когда не все символы в табельном номере являются цифрами) печатать:

- порядковый номер компоненты;

- ошибочное значение поля "табельный номер".

б) Проверить правильность значения поля "контрольная

- 25 -

цифра" для каждой компоненты файла. Для каждого нарушения (когда контрольная цифра не соответствует табельному номеру) печатать:

- порядковый номер компоненты;

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

Указание. Числовое значение цифры X равно .Перевод табельного номера из символьного представления в числовое осуществляется по формуле

.

19. (Обработка файла поставки. - Упорядоченные файлы.) Каждая компонента файла поставки содержит:

N1 - номер поставляемой детали;

N2 - номер поставщика;

К - количество экземпляров детали, поставляемых по договору;)

D - дату (номер месяца и год завершения) поставки. Файл упорядочен лексикографически по ключу (N1,N2). Это означает, что в начале файла записаны компоненты с меньшим значением N1 , а затем - с большим. Если две компоненты имеют одинаковое значение N1 (мы допускаем, что одну и ту же деталь могут поставлять несколько поставщиков), то они записаны в файле по возрастанию значения N2 . Таким образом, компонента с ключом (2,15) предшествует компоненте с ключом (2,50), которая, в свою очередь, предшествует компоненте с ключом (5,1). Будем считать, что на поставку одной и той же детали один поставщик заключает не более одного договора. Другими словами, в файле не может быть двух компонент с одинаковыми ключами.

а) (Устранение повторений.) Используя файл ПОСТАВКИ, сформировать файл ДЕТАЛИ, каждая компонента которого должна содержать:

N1 - номер детали;

К - количество экземпляров детали. Файл ДЕТАЛИ должен быть упорядочен по возрастанию значения поля "номер детали" (без повторений). Значение поля "количество

- 26 -

экземпляров" формируется суммированием соответствующих полей файла ПОСТАВКИ по всем поставщикам этой детали.

б) (Выделение одиночек.) Используя файл ПОСТАВКИ, сформировать файл ОДИНОЧКИ, содержащий сведения о поставках тех деталей, которые поставляются только одним поставщиком.

в) (Выделение серий.) Используя файл ПОСТАВКИ, сформировать файл СЕРИИ,•содержащий сведения о поставках только таких деталей, которые поставляются несколькими поставщиками (т.е. те компоненты, которые не вошли в файл ОДИНОЧКИ).

г) (Исключение.) Имеется файл РАЗРЫВ-ДОГОВОРОВ-НА-ПОСТАВ-КУ, каждая компонента которого содержит:

N1 - номер детали;

N2 - номер поставщика.

Файл упорядочен по ключу ( N1,N2) так же, как и файл ПОСТАВКИ, и не содержит одинаковых компонент. Обновить файл ПОСТАВКИ, исключив из него сведения о поставках по разорванным договорам .

д) (Выборка.) имеется файл ЗАПРОСЫ-О-ПОСТАВКАХ, каждая компонента которого содержит:

N1 - номер детали;

N2 - номер поставщика.

Файл упорядочен по ключу (N1, N2) так же, как и файл ПОСТАВКИ, и не содержит одинаковых компонент. Используя файл ПОСТАВКИ, сформировать файл ВЫБОРКА, содержащий полные сведения только о тех поставках, которые упомянуты в файле ЗАПРОСЫ-0-ПОСТАВКАХ.

е) (Исправление поля.) Имеется файл ВЫПОЛНЕНИЕ-ДОГОВОРОВ -О-ПОСТАВКАХ-I, каждая компонента которого содержит:

N1 - номер детали;

N2 - номер поставщика;

К - количество экземпляров уже поставленных деталей. Файл упорядочен по ключу (N1,N2) так же, как и файл ПОСТАВКИ. • Используя файл ПОСТАВКИ, создать файл НЕДОВЫПОЛНЕНИЕ- ПОСТАВОК, формируя в поле "количество экземпляров" остаток от исходного значения поля. (Сведения о полностью выполненных поставках можно опускать. Учесть, что к выполнению некоторых поставок поставщики могли еще не приступить.)

ж) (Повторяющиеся изменения.) Имеется файл ВЫПОЛНЕНИЕ-ДО-

- 27 -

ГОВОРОВ-0-ПОСТАВКАХ.2, каждая компонента которого содержит:

N1 - номер детали;

N2 - номер поставщика;

D - дату поставки;

К - количество экземпляров уже поставленных деталей.

Файл упорядочен по ключу (N1,N2) так же, как и файл ПОСТАВКИ, но в файле могут быть компоненты с одинаковыми ключами (т.е. договорная поставка могла выполняться многократно частями).

1) Исключить из файла ПОСТАВКИ сведения о полностью выполненных поставках, не корректируя сведений о поставках, выполненных не полностью.

2) Используя файл ПОСТАВКИ, сформировать аналогичный файл КОНТРОЛЬ-НАЧАТЫХ.ПОСТАВОК, помещая в него сведения только о тех поставках, к выполнению которых поставщик приступил. Значение поля "количество экземпляров" заменять на остаток.

3) Обновить файл ПОСТАВКИ, заменяя значение поля "количество экземпляров" на остаток.

з) (Замена компонент.) Имеется файл ПЕРЙЗАКЛЮЧЕНИЯ-ДОГОЗО-РОВ-0-ПОСТАВКАХ, аналогичный файлу ПОСТАВКИ по структуре и упорядоченности компонент. В нем помещены сведения, касающиеся изменения сроков поставок и количества поставляемых деталей. Требуется обновить файл ПОСТАВКИ, учитывая упомянутые изменения.

и) (Слияние.) Имеется файл НОВЫЕ-ДОГОВОРА-О-ПОСТАВКАХ, аналогичный файлу ПОСТАВКИ по структуре и упорядоченности компонент. Обновить файл ПОСТАВКИ, включая в него новые сведения о поставках. Если ключ (N1,N2) некоторой компоненты файла НОВЫЕ-ДОГОВОРА-0-ПОСТАВКАХ совпадает с ключом некоторой компоненты файла ПОСТАВКИ, то в обновленный файл должна быть включена одна объединенная компонента с таким ключом, которая в поле "количество экземпляров" должна содержать сумму, а в поле "дата поставки" - наибольшую из дат.

к) (Соединение компонент.) Имеется файл-СВЕДЕНИЯ-0-ДЕТАЛЯХ, каждая компонента которого содержит:

- номер детали";

- 28 -

- наименование детали;

- цену детали;

- вес детали.

Используя файл ПОСТАВКИ, сформировать новый файл, в котором сведения о каждой поставке дополнены сведениями о поставляемой детали.