Записи в языке Паскаль

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

Объединение разнотипных компонентов в языке Паскаль (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 отсутствуют записи с вариантами.