Записи. Язык программирования Delph

Содержание

Слайд 2

Объявление записи Запись - составной тип данных, состоящий из фиксированного числа

Объявление записи

Запись - составной тип данных, состоящий из фиксированного числа элементов

одного или нескольких типов.

Формат:
type <имя записи> = record
<список имен полей 1>: тип1;
...
<список имен полей N>: типN;
end;

Слайд 3

Объявление записи Пример: type TPerson = record FirstName, LastName: string[20]; //

Объявление записи

Пример:
type TPerson = record
FirstName, LastName: string[20];
// имя, фамилия


BirthYear: Integer;
// год рождения
end;
Слайд 4

Объявление записи Особенности: Идентификаторы полей должны быть уникальными только в пределах

Объявление записи

Особенности:
Идентификаторы полей должны быть уникальными только в пределах записи.
Допускается вложение

записей друг в друга, т.е. поле записи может быть в свою очередь тоже записью.
Чтобы получить в программе реальную запись, нужно создать переменную соответствующего типа:
var Friend: TPerson;
Слайд 5

Доступ Доступ к содержимому записи осуществляется посредством идентификаторов переменной и поля,

Доступ

Доступ к содержимому записи осуществляется посредством идентификаторов переменной и поля, разделенных

точкой (составным именем).
Пример:
Friend.FirstName := 'Александр';
Friend.LastName := 'Иванов';
Friend.BirthYear := 1991;
Слайд 6

Доступ Обращение к полям записи имеет несколько громоздкий вид. Для решения

Доступ

Обращение к полям записи имеет несколько громоздкий вид.
Для решения этой проблемы

предназначен оператор with.
with <запись> do <оператор>;
Однажды указав имя записи в операторе with, можно работать с именами ее полей как с обычными переменными, т.е. без указания идентификатора записи перед идентификатором поля.
Слайд 7

Доступ Пример: with Friend do Begin FirstName := 'Александр'; LastName := 'Иванов'; BirthYear := 1991; Еnd;

Доступ

Пример:
with Friend do
Begin
FirstName := 'Александр';
LastName := 'Иванов';
BirthYear

:= 1991;
Еnd;
Слайд 8

Пример Фрагмент заполнения полей записи содержимым таблицы StringGrid1 Var Friend: array[1..3]

Пример

Фрагмент заполнения полей записи содержимым таблицы StringGrid1

Var Friend: array[1..3] of TPerson;
.

. . . . . . . . . . . . . . . . . . . . . . . . . . .
For k:=1 to StringGrid1.RowCount-1 do
with Friend[k] do
begin
FirstName:=StringGrid1.Cells[0,k];
LastName:=StringGrid1.Cells[1,k];
BirthYear:=StringGrid1.Cells[2,k]; // Найдите ошибку
end;
Слайд 9

Записи с вариантами Можно задать для записи несколько вариантов структуры (записи

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

Можно задать для записи несколько вариантов структуры (записи с

вариантами). Они состоят из необязательной фиксированной и вариантной частей.
type <имя записи> = record
<список имен полей 1>: тип1;
...
<список имен полей N>: типN;
case <поле признака>: ordinalType of
<список значений 1>: (вариант1);
...
<список значений K>: (вариантK);
end;
Слайд 10

Записи с вариантами - идентификатор порядкового типа Поле признака определяет, какой

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

<поле признака> - идентификатор порядкового типа
Поле признака определяет, какой

из вариантов в данный момент будет активизирован. Оно должно быть равно одному из расположенных следом значений. Каждому значению сопоставляется вариант записи.
<список значений…> - список значений поля признака, разделенных ‘,’
(вариант…) - список имен полей с типами, заключенных в круглые скобки.