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

Вопросы для самопроверки

1. Как описываются строки в языке Паскаль?

2. Чем различаются строки фиксированной и переменной длины?

3. Какие операции допустимы над строками?

4. Какие процедуры и функции для работы со строками Вы знаете?

5. Что возвращает функция Length(s)?

6. Назовите основные отличия строки от массива символов.

§13. Записи

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

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

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

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

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

Описание записи в языке Паскаль осуществляется с помощью служебного слова Record, вслед за которым описываются поля записи. Завершается описание записи служебным словом end:

record

<имя поля 1>: <тип данных поля 1>;

[ <имя поля 2>: <тип данных поля 2>; ]

[ … ]

[ <имя поля n>: <тип данных поля n>; ]

end;

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

Например, записная книжка содержит фамилии, инициалы и номера телефона, поэтому отдельную строку в записной книжке удобно представить в виде следующей записи:

Пример: записная книжка – описание в разделе type

type

TRow=Record

FIO: String[20];

TEL: String[7]

end;

var

str: TRow;

Так, выше описана запись, содержащая два поля – FIO и TEL.

Описание записей возможно и без задания имени типа (в таком случае запись описывается в разделе var непосредственно после имени переменной).

Пример: записная книжка – описание в разделе var

var

str: Record

FIO: String[20];

TEL: String[7]

end;

Обращение к записям

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

Пример: присваивание одной записи другой

var X, Y: TRow;

X:=Y;

Y:=X;

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

Пример: обращение к полям записи

str.FIO, str.TEL

Компонентой записи может быть другая запись. В таком случае составное имя будет содержать не два, а большее количество имен.

Пример: запись как поле записи (окружность)

type

TPoint = record

x, y: real;

end;

TCircle = record

center: TPoint;

radius: real;

color: integer;

end;

var Circle: TCircle;

Circle.color:=0;

readln(Circle.radius);

Circle.center.x:=10;

Circle.center.y:=5.5;