Структурированные типы. Тип «запись». Фиксированные записи

   
На этом шаге мы рассмотрим фиксированные записи.

   
Запись, в отличие от массивов, множеств и файлов, является составной структурой данных. Если отдельно взятый массив, множество или файл
всегда включают элементы одинакового типа, то записи могут объединять в единое целое любое число структур данных других типов: простых переменных, массивов, множеств, записей и файлов.

   
В языке Object Pascal различают фиксированные (обычные) и вариантные записи.
Фиксированные записи

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

type		
  String7 = String[7];	
  String20 = String[20] ;	
  TMarks = record		
              MathAnal : Byte; {Мат.анализ}
              LinAl    : Byte; { Лин.алгебра}
              Prog     : Byte; { Программирование }
              Phys     : Byte; { Физика }
           end;		
  TStudentCard = record	
                     SurName: String20;	{ Фамилия }
                     Name     : String20;	{ Имя }
                     FatherName: String20;{ Отчество }
                     Year: Integer; { Год рождения }
                     HomeAddress: String; { Домашний адрес }
                     GroupCode: String7; { Шифр группы }
                     Marks: TMarks; { Оценки за последний семестр}
                 end;		

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

tуре
  TGroup = array [1..25] of TStudentCard;
var
  Group_KB51, Group_KB52: TGroup;

   
В этом случае корректными будут такие операторы и обращения полям записей:

Group_KB51[1].Name := 'Sergey';	
Group_KB51[1].Year := 1978;		
Group_KB51[1].Marks.Prog := 5;		
Group_KB51[1].Marks := Group_KB52[1].Marks;
Group_KB51[5] := Group_KB52[7];
Group_KB51 := Group_KB52;	

   
Для упрощения работы с записями и придания программе большей наглядности в Object Pascal имеется специальный оператор присоединения with. С использованием этого оператора вышеприведенные операторы будут записаны в таком виде:

with Group_KB51[1] do
begin	
  Name := 'Sergey';
  Year := 1978;
  Marks.Prog := 5;
  Marks := Group_KB52[1].Marks;
end;	
Group_KB51[5] := Group_KB52[7];
Group_KB51 := Group_KB52;	

   
При заполнении информацией структур данных типа "запись" из текстовых файлов необходимо помнить, что файлы типа Text допускают чтение данных только некоторых стандартных типов.
Поэтому, в операторах Read и Readln могут располагаться идентификаторы только самых внутренних полей, которые имеют допустимый для ввода из текстового файла тип.

   
На следующем шаге мы рассмотрим записи с вариантами.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий