Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Определение

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

Компоненты записи могут разного типа. Компонента (поле) – переменная некоторого типа.

Описание

а) через предварительное описание типа-записи:

TYPE

<имя типа> = record

поле1: тип поля1;

поле2: тип поля2;

...

поле n: тип поляN

end;

VAR

a: <имя типа>;

б) непосредственное описание переменной типа записи:

VAR

a: record

поле1: тип поля1;

поле2: тип поля2;

...

поле n: тип поляN

end;

в) допускается поля одного типа объединять в одно описание:

Поле1, поле2: тип полей 1 и 2;

Пример 1:

TYPE

TPoint = record

x: real;

y: real;

End;

VAR

Point: TPoint;

Пример 1:

TYPE

TPoint = record

x, y: real;

End;

VAR

Point: record

x, y: real;

End;

Инициализация записей

При введении исходных данных в виде типизированных констант используется явное указание на идентификатор поля. Например, для ввода координат точки можно воспользоваться типом точки TPoint:

TYPE

TPoint = record

x,y: real;

End;

CONST

Point: TPoint = (x: 2.0; y: -1.5);

Доступ к полю записи

Формат доступа:

<имя переменной записи>.<имя поля>,

например, Point.х.

Имя поля данной записи неизменно во всей программе. Вне записи этот же идентификатор может обозначать совершенно другую величину.

Например,

VAR

Point: record

x,y: real;

End;

x: string;

BEGIN

Point.x:=1.5;

x:=’some’;

Здесь строковая переменная х, описанная в программе, и Point.х – разные переменные.

Составные записи, поля-массивы, массивы записей

Поле записи может быть записью или массивом.

Массив может состоять из записей.

В качестве примера рассмотрим массив многоугольников (polygons).

PROGRAM Polygons;

CONST

MaxNumVert = 125;

MaxNumPol=125;

TYPE

TPoint = record {точка}

x,y: real;

End;

TPolygon = record {многоугольник}

Num_vert: 1.. MaxNumVert; {количество вершин}

Vertex: array [1.. MaxNumVert] of TPoint; {вершины многоугольника}

End;

VAR

Polygon: array [1.. MaxNumPol] of Tpolygon; {набор многоугольников}

X: real;

Polygon[4].Vertex[2].x:= x + Polygon[4].Vertex[2].x;

Polygon[4].Vertex[2].y:= 2+ Polygon[4].Vertex[2].y;

В приведенной программе x и Polygon[4].Vertex[2].x – различные числа, хранящиеся в различных областях памяти.

Оператор присоединения: with

with <имя записи> do <оператор>

Если в какой-то части программы осуществляют операции с конкретной записью, то можно упростить действия, применив оператор WITH.

Начиная с момента введения оператора WITH, имена полей указанной записи можно употреблять без указания имени текущей записи. Например,

with Polygon[4] do

begin

Vertex[2].x:= x + Vertex[2].x;

Vertex[2].y:= 2+ Vertex[2].y;

End;

или

with Polygon[4] do

with Vertex[2] do

begin

x:= Polygons.x + x; // Polygons – имя программы

y:= 2+ y;

еnd;

или так:

with Polygon[4].Vertex[2] do

begin

x:= Polygons.x + x; // Polygons – имя программы

y:= 2+ y;

end;

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





Дата публикования: 2014-12-08; Прочитано: 134 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...