Работа с внешними типизированными файлами: Методические указания для выполнения лабораторной работы, страница 2

    End;

Предложение CASEOF, открывающее вариантную часть, внешне похож на соответствующий оператор выбора, но на самом деле играет роль своеобразного служебного слова, играющего роль вариантной части. Именно поэтому в конце вариантной части не надо ставить END, как пару к CASEOF.

Ключ выбора в предложении CASEOF фактически игнорируется компилятором: единственное требование, предъявленное к нему TURBOPASCAL состоит в том, чтобы ключ определяем предварительно объявленный порядковый тип.

Таким образом, при использовании вариантной части надо обратить внимание на следующие обстоятельства:

  1. Начало вариантной части начинается служебным словом CASE, а после определения поля признака записывается служебное слово OF. Вариантная часть завершается служебным словом END вместе с завершением всей записи. Таким образом, вариантная часть может быть только одна, и она должна быть в конце записи. Однако вариантная часть допускает вложенность других вариантных частей.
  2. Альтернативы вариантной части помечаются допустимыми значениями поля в ключе выбора. Для их использования в качестве ключа выбора их надо предварительно определить как порядковый тип.
  3. Идентификаторы полей во всех вариантах должны быть различны и отличаться от идентификаторов полей фиксированной части.
  4. Поле, значение которого задают варианты, называют дискриминантом записи.
  5. Для некоторых значений поля дискриминанта вариант может отсутствовать, тогда после двоеточия может стоять пустой список вида ( ).

Процедуры и функции для работы с типизированными файлами

Процедура SEEK (поиск N-ой компоненты)

Формат процедуры:

SEEK(<ф.п.>,<N компоненты>);

где <N компоненты> - выражение типа LongInt,  указывающее номер компоненты файла. Процедура используется для типизированных файлов.  Указатель записи перемещается на компоненту с номером N.

Функция FILEPOS (позиция текущей компоненты)

Формат функции:

FILEPOS(<ф.п.>);

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

Функция FILESIZE (размер файла)

Формат функции:

FILESIZE(<ф.п.>);

     Функция используется для типизированных файлов и  возвращает значение типа LongInt,  которое  содержит  количество компонентов файла.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.  Что такое тип Record, и для каких целей он используется?

2.  Назначение вариантной части типа Record.

3.  Способы обращения к полям записи.

4.  Каким образом объявляется типизированный файл?

5.  Как обратится к конкретной записи типизированного файла?

6.  Назначение функций FilePos  и FileSize.

Задания на лабораторную работу

Вариант 1

   Создать типизированный файл, фиксирующий доходы семьи из 5 человек (отец, мать – работают, дедушка – пенсионер, сын, дочь - студенты) ежемесячно в течение года. В считанных записях из файлов  за последние  9 месяцев, определить месяцы, когда  сын получал стипендию и заработок отца превышал 5000 рублей. Исходную информацию выдать в виде таблицы.

Вариант 2

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

Вариант 3

   Создать типизированный файл, фиксирующий доходы семьи из 3 человек (отец, мать, сын) ежемесячно в течение года.  В считанных записях из файлов за последние  6 месяцев, определить средний доход на одного человека. Исходную информацию выдать в виде таблицы.

Вариант 4

   Создать типизированный файл, фиксирующий доходы семьи из 4 человек (отец, мать – работают, сын, дочь - студенты) ежемесячно в течение года.  В считанных записях из файлов за последние 5 месяцев, определить месяцы, когда доход на одного человека был больше 1500 рублей. Исходную информацию выдать в виде таблицы.

Вариант 5

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

Вариант 6

   Создать типизированный файл,  содержащий оценки подгруппы из 12 человек по дисциплинам   1 семестра.  В считанных из файла записях 1, 3, 5, 7, 9,11, найти и напечатать фамилии студентов, имеющих только отличные оценки. Исходную информацию выдать в виде таблицы.

Вариант 7

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

Вариант 8

   Создать типизированный файлы,  содержащий результаты соревнований по видам: бег 100 м, прыжки в высоту, прыжки в длину группы из 10 человек. В считанных из файлов записях  с 5 по 10,  найти и напечатать фамилии студентов,  пробежавших  100 м быстрее  12 сек,    и преодолевших высоту более 150 см. Исходную информацию выдать в виде таблицы.

Вариант 9

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

Вариант 10

   Создать типизированный файл из 10 записей, содержащий марки машины, год выпуска, пробег в  км. Считать из файла записи  с номерами, кратными 3, найти и напечатать марки машин, которые прошли  более 50000 км. Исходную информацию выдать в виде таблицы.

Вариант 11

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

Вариант 12

   Создать типизированный файл,  содержащий количество продаж в месяц в течение года бытовой техники (TV, микроволновая  печь, утюг, стиральная машина). Считать месяцы после лета и определить месяцы с максимальной продажей каждого вида бытовой техники. Исходную информацию выдать в виде таблицы.

Вариант 13

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

Вариант 14

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