Вторник, Октябрь 20Добро пожаловать!

Записи в языке Pascal

Как устроены записи в языке Паскаль?

Записи в языке Паскаль — это совокупность ограниченного количества компонент, связанных логически и принадлежащих к различным типам. Полями называют компоненты записи. Каждое поле определяется определенным именем. Поле записи включает имя поля, за которым через символ «:» указывают тип данного поля. Поля записи могут быть любого типа в языке Паскаль (исключение составляет файловый тип).

Записи в языке Паскаль описывают при помощи зарезервированного слова record, за которым указывают описание компонент записи, которая завершается зарезервированным словом end.

Примеры записи в языке Pascal

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

type Tspr = record
        RECEPT: string[30];
        INGRD: string[10];
end;
 
var spr: Tspr;

Записи можно представить, не используя имя типа:

var spr: record
        RECEPT: string[30];
        INGRD: string[10];
end;

Обращение к записи в общем допускается лишь в операторах присваивания, где слева и справа от знака «:=» применяются имена записей одно и того же типа. В остальных случаях операции проводят с отдельными полями записей. Для обращения к отдельной компоненте записи нужно задать имя записи, а далее через символ «.» задать имя необходимого поля:

Пример:

rec.RECEPT,   rec.INGRD

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

Оператор обращения к записи в языке Pascal

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

with rec do оператор;

где rec выступает в качестве имени записи, а оператор — простой или составной оператор. Оператор есть область действия оператора with, в границах которой можно не пользоваться составными именами. В нашем случае:

with rec do 
begin
            RECEPT:=’Napoleon’;
            INGRD:=’Saharnaya pudra’;
end;

что идентично следующей конструкции:

rec.RECEPT:=’Napoleon’;
rec.INGRD:=’Saharnaya pudra’;

Инициализировать записи можно, используя типизированные константы:

записи паскаль

Записи с вариантами в языке Pascal

Одна из разновидностей записей — это записи с вариантами, объявляющиеся при помощи ключевого слова case. Используя записи с вариантами, у вас появится возможность сохранять разнообразные структуры данных, имеющие огромную, одинаковую во всех структурах общую часть, а также некоторые небольшие различающиеся части. Для примера создадим запись, в которой будут храниться данные о некой геометрической фигуре (отрезок, треугольник и окружность):

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

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

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *