Лекции по паскаль, Записи.
Запись - это структурированный тип данных, состоящий из фиксированного числа компонент одного или нескольких типов. Такой тип удобен для компактного представления комбинаций разнотипных данных.
Определение типа начинается идентификатором record и заканчивается словом end. Между ними заключен список компонент, называемых полями. Каждое поле состоит из идентификатора и типа компоненты. Примеры определения типа:
Туре
PaletteType = record
Size : Byte;
Colors: Arrayt[0..MaxColors] of Shortint
end;
ViewPortType = record
xl,yl,x2,y2: Integer;
Clip : Boolean;
end;
Info = record
l: Word;
c: String[7];
m: String[13]; end;
После объявления в программе переменной типа запись, например,
Var Cube: PaletteType;
к каждому её полю обращаются, указывая сначала идентификатор переменной, а затем через точку - имя поля, т.е. ViewPortType.x1, ViewPortType.x2, ViewPortType.colors. Составные имена используются везде, где допустимы переменные того же типа, что и поле, но имя записи может участвовать только в операциях присваивания. Если несколько полей имеют одинаковый тип, то имена полей обычно перечисляют.
Поле записи может иметь практически любой тип: массив, множество, другая запись. В последнем случае элементы (поля полей) имеют имя, состоящее из трёх частей. На практике чаще всего используют массивы записей. Порядок описания полей в определении записи задаёт их порядок хранения в памяти, а необходимый для этого объём складывается из длин полей.
Константы-записи. Новый тип можно использовать и для введения в программу типизированных констант, например,
Type Point = record
x,y:Real;
end;
Vector = Array[0..1] of Point;
Const Origin:Point=(X:0.0;Y:0.0);
Line:Vector=((X:-1.9;Y:1.7),(X:2.0;Y:1.7));
Поля должны указываться в той же последовательности. Для записей с вариантными полями указывается только один из возможных вариантов констант.
Оператор присоединения. Для упрощения доступа к полям записей при их совместной обработке предназначен оператор with, имеющий формат:
with <имя переменной> do <оператор>.
Один раз указав имя переменной типа запись в операторе with, можно внутри оператора обращаться к полям записи без указания имени.
with cube do
begin l:=3; с:='синий' ; m:='деревянный' end;
или
cube.l:=3; cube.c:='синий'; cube.m:='деревянный';
Вариантные записи. Во многих задачах строго определённая структура записи ограничивает её применение. Поэтому предусмотрены записи, содержащие произвольное число компонент. Они называются записями с вариантами и состоят из фиксированной и вариантной частей. Последняя формируется с помощью оператора Case. Он задаёт особое поле записи - поле признака, которое определяет, какой из вариантов в данный момент будет активизирован. Вариантные поля указываются после фиксированных; компоненты каждого варианта заключаются в круглые скобки; у части Case нет отдельного слова end. Если в рассматриваемом выше примере потребуеся выбор единиц длины для измерения длины ребра а, то в запись можно ввести вариантную часть:
Info = record
с: String[7];
m: String[13];
Case L: Char of
'Л': (inches: Word); 'c’: (cantim: Longlnt); end;
<== предыдущая лекция | | | следующая лекция ==> |
Операции над множествами. Описание типа множества. | | | Стандартные процедуры для работы с файлами. |
Дата добавления: 2016-02-02; просмотров: 1494;