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

Особенности работы с записями

1. Обращение к записи в целом возможно только в операторе присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа, например: b := a;

Естественно, что до выполнения этого оператора значения всех полей переменной – записи a должны быть определены. Во всех прочих случаях оперируют отдельными полями записи.

2. Реализуется прямой доступ к любому полю записи. Чтобы обратиться к отдельному полю записи, необходимо задать имя переменной типа запись и через точку указать имя нужного поля, например:

a. re := 1.54; a. im := – 2.45;

Такое имя называется составным.

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

3. Допускается любая степень вложенности одной записи в другую. Любое поле записи может быть само записью, например:

type stud = record

name : string[15];

data: record

day : 1 .. 31:

month : 1 .. 12;

year : integer

end;

sex : ( m, w )

end;

var cc : stud;

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

cc. name := 'Миронов А. В. ';

cc. data. day := 15;

cc. data. month := 11;

cc. data. year := 1989;

cc. sex := m;

4. Для упрощения работы с записями используется оператор присоединения with . Он позволяет заменить составные имена, характеризующие каждое поле, просто именами полей, а имена записи определить в операторе присоединения:

with M do S;

гдеМ – имя записи,

S – оператор, простой или составной.

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

Иначе говоря, оператор присоединения позволяет работать с полями записи, как с простыми переменными.

Без оператора присоединения:

С оператором присоединения

Пример 1

a.re := 1.54;

a.im := 2.45

with a do

begin re := 1.54;

im := 2.45

end;

Пример 2

data.day := 15;

data.month := 12;

data.year:=1989

with data do

begin day := 15;

month := 12;

year:=1989

end;

5. Допускается использование записей в качестве компонент других сложных типов, например, массивов. Массив комплексных чисел можно задать так:

var mascomp : array [1 .. 10] of comp;

Оператор присваивания нового значения полю re во второй записи массива имеет вид:

mascomp [2] .re := 1.54.

При вводе элементов массива из записей с клавиатуры обычно используют оператор присоединения:

write(‘Введи комплексное число’);

for i := 1 to 10 do

with mascomp[i] do

begin writeln (‘действительная часть: ’);

readln(re);

write(‘мнимая часть: ’);

readln(im)

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]