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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- вес детали.

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