Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ЯП (Кузьмин) ч.2_new (Паскаль).docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

19.2 Доступ к полям записи.

Доступ к полям записи производится с использованием т.н. составных имен, в записи которых всегда присутствует точка. Применительно к записи составное имя образуется из имени переменной типа запись, справа от которого через точку записывается в простейшем случае имя интересующего нас поля.

Var

A: record

b: byte;

C : record

d: char;

e : byte;

end;

end;

В приведенной записи доступ к полям выглядит следующим образом:

A. b := ;

A. C. d := ;

Имя поля

A. C. e := ;

Путь к полю записи

В записи три поля. Доступ к полю b записи достаточно прост. Доступ к полям e и d наиболее сложен, потому что слева записывается путь, который нужно пройти, двигаясь от начала описания записи.

В случае массива записей доступ для поля h будет выглядеть:

table[5]. B. C. h:= ;

Для случая, где массивы являются полями записи доступ к полю h выглядит следующим образом:

table. B. C. h[5]:= ;

19.3 Оператор with

Формат его записи:

with префикс do

оператор;

один оператор!

Если описание записи длинное (путь к полям записи долго писать) и необходимо выполнить единообразные действия над полями этой записи, то оператор with избавляет от необходимости каждый раз для каждого действия записывать полный путь интересующей записи.

Для последнего случая, если надо обработать все элементы массива (поля) и, то обработку можно описать следующим образом:

table.B.C.h[1]:= ;

table.B.C.h[2]:= ;

table.B.C.h[3]:= ;

...

table.B.C.h[9]:= ;

Путь к полю записи

with table.B.C do

begin

h[1]:= …;

h[2]:= …;

...

end;

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

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

19.4 Действия над записями

Разрешается присваивать одной записи целиком содержимое другой (но обязательно однотипной) записи. Ввод-вывод возможен только по отношению к полям записи. Запись можно передавать как параметр в подпрограммы. Надо только предварительно описать тип такой записи в секции описания типов (для обеспечения эквивалентности типа формального и фактического параметра-записи).

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

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

имя1 : тип1; поля фиксированной части

Var имя2 : тип2;

R : Record ……………. имя : тип или тип

Фиксированная часть

Варьируемая часть case селектор of

End; конст1 : (имя1 : тип1) ; вариантные поля

конст2 : (имя2 : тип2) ;

………………………..