Записи в языке Паскаль
Описания реальных объектов при решении различных задач могут содержать совокупности данных различных типов. Применение массивов в таких случаях оказывается затруднительным, так как элементы этой структуры должны быть однотипными.
Объединение разнотипных компонентов в языке Паскаль (Pascal) осуществляется с помощью комбинированного типа данных запись.
Запись – это структурированный тип данных Паскаль, представляющий собой набор разнотипных компонентов, которые называются полями записи.
В классическом языке Паскаль описание типа запись имеет следующий формат:
- type
- <имя типа> = record;
- <имя поля> : <тип поля>;
- ...
- <имя поля> : <тип поля>;
- end;
Рассмотрим пример: в базе данных, хранящаяся на складе спортивная обувь, бутсы, описывается с помощью наименования производителя, цены и количества единиц:
- type
- spShoes = record
- firm: string;
- size: real;
- quantity: integer;
- end;
Доступ к полям записи производится с помощью переменной типа «запись», описание которой происходит обычным образом. Для обращения к отдельной компоненте записи используется составное имя, состоящее из имен переменной и поля, разделенных точкой (точечная нотация). Например:
- var boots, sneakers: spShoes;
- begin
- boots.firm := 'Adidas';
- boots.size := 7.5;
- boots.quantity := 50;
- writeln(boots.firm, ' ', boots.size, ' ', boots.quantity);
- end.
Если записи относятся к одному и тому же типу, то в Паскале, аналогично массивам, их можно присвоить друг другу, а также применить операцию сравнения. Например:
- sneakers := boots;
- writeln(sneakers = boots); {Вывод: True}
Для удобства обращения к полям записи можно использовать оператор with, который в языке Паскаль имеет следующий вид:
with <переменная типа запись> do <оператор>;
Однажды указав переменную типа запись в операторе with, затем можно работать только с именами полей. Использование такого способа делает код программы более компактным. Так предыдущий фрагмент программы с применением оператора with будет выглядеть следующим образом:
- with boots do
- begin
- firm := 'Adidas';
- size := 7.5;
- quantity := 50;
- writeln(firm, ' ', size, ' ', quantity);
- end;
Внимание: в языке PascalABC.NET отсутствуют записи с вариантами.