З а п и с и
Объявление записи
Объявление записи
Объявление записи
Доступ
Доступ
Доступ
Пример
Записи с вариантами
Записи с вариантами
Записи с вариантами
55.50K
Category: programmingprogramming

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

1. З а п и с и

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

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

Запись - составной тип данных, состоящий из
фиксированного числа элементов одного или
нескольких типов.
Формат:
type <имя записи> = record
<список имен полей 1>: тип1;
...
<список имен полей N>: типN;
end;

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

Пример:
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;

8. Пример

Фрагмент заполнения полей записи содержимым таблицы
StringGrid1
Имя
Фамилия Год рождения
Александр Иванов
1991
Виктор
Краснов
1990
Ирина
Петрова
1992
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. Записи с вариантами

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

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

Пример описания записи с вариантами:
type TFigure = record
X, Y: Integer;
case Kind: Integer of
0: (Width, Height: Integer); // прямоугольник
1: (Radius: Integer);
// окружность
end;
Внимание! У вариантной части нет отдельного end.
Одно слово end завершает и вариантную часть, и всю
запись.
English     Русский Rules