Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика.doc
Скачиваний:
60
Добавлен:
11.04.2015
Размер:
2.47 Mб
Скачать

8.5 Записи с вариантами

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

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

Например, в библиотечном каталоге хранятся не только книги, но и журналы. Кроме названия, для книг хранится автор, год издания и количество страниц, а для журналов – номер и год выпуска.

b.name:=’Введение в Паскаль’;

b.autor:=’Абрамов В.И.’;

b.year:=1980;

b.str:=253;

или

b.name:=’Мир ПК’;

b.nomer:=2;

b.god:=1998;

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

В стандарте Паскаля перед тем, как использовать один из вариантов записи, переменной выбора варианта необходимо присвоить соответствующее значение. В Турбо-Паскале это делать необязательно (!).

case <переменная выбора>: тип of

вариант1: (поле1: тип;

поле2: тип;

полеN: тип);

вариант2: (поле1: тип;

поле2: тип;

полеK: тип);

Пример:

type izdanie = (book, magazine);

zap = record

name: string;

case tip: izdanie of

book: (autor: string;

year: integer;

str: integer);

magazine: (nomer: byte;

god: integer);

end;

var b: zap;

begin

if tip = book then writeln (b.name, b.autor, b.year, b.str)

else writeln (b.name, b.nomer, b.god);

end.

В запись с вариантами можно не вводить переменную выбора, перечислить только разные варианты.

type dostup = record

case integer of

1: (one_word: word);

2: (byte1: byte;

byte2: byte);

end;

9. Файлы

9.1 Определение файла

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

В Турбо-Паскале выделяют 3 типа файлов:

  1. Текстовые файлы – используются для хранения текстовой информации в виде символов, объединенных в строки.

Описание: var <файловая переменная>: text;

Например, var f1: text;

  1. Типизированные файлы – используются для хранения данных определенного типа.

Описание: var <файловая переменная>: file of <тип>;

Например, var f1: integer;

var f2: real;

var f3: ‘A’..’z’;

  1. Нетипизированные файлы – используются для организации доступа к любым данным, независимо от их структуры (тип компонентов не указывается).

Описание: var <файловая переменная>: file;

Например, var f: file;