Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
собеседование.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
132.56 Кб
Скачать

Операции отношения множественных типов Паскаля

Наряду с рассмотренными выше операциями, над значениями множественного типа определены и некоторые операции отношения. Операндами операций над множественными значениями в общем случае являются множественные выражения. Среди операций отношения над значениями множественного типа особое место занимает специальная операция проверки вхождения элемента во множества, обозначаемая служебным словомin. В отличие от остальных операций отношения, в которых значения обоих операндов относятся к одному и тому же множественному типу значений, в операции in первый операнд должен принадлежать базовому типу, а второй – множественному типу значений, построенному на основе этого базового типа. Результатом операции отношения, как обычно, является логическое значение (true или false).

‘a’ in glasn значение операции true;

‘o’ in soglasn значение операции false;

Операция сравнения на равенство множественных типов Паскаля. Множества считаются равными (эквивалентными), если все элементы одного множества присутствуют в другом и наоборот. Для операции сравнения на равенство или неравенство используются символы ‘=’ и ‘<>’.

A:= [2,1,3];

D:= [1,3,2];

Тогда операция A=D имеет значение true, а операция A<>D имеет значение false.

Проверка включения. Одно множество считается включенным в другое (одно множество является подмножеством другого), если все его элементы содержатся во втором множестве. Обратное утверждение может быть и несправедливым. Операции проверки включения обозначаются ‘<=’ и ‘>=’.

letter >= glasn;

soglan <= letter;

Следует отметить, что применение операций < и > над операндами множественного типа недопустимо.

Записи

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

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

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

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

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

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

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

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

with rec do 

begin

            RECEPT:='Napoleon';

            INGRD:='Saharnaya pudra';

end;

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

rec.RECEPT:='Napoleon';

rec.INGRD:='Saharnaya pudra';  

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

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

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

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

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