Главная » Free Pascal » Записи Free Pascal

0

Своим происхождением записи обязаны таблицам — одному из наиболее рас- пространенных документов представления данных, который возник задолго до по- явления ЭВМ. Одна из первых программных систем, взявших на вооружение запи- си — "Коммерческий Транслятор" (COMTRAN), разработанный в 1959 г. группой сотрудников IBM. Позднее данные типа запись составили основу алгоритмическо- го языка COBOL (COmmon Business Oriented Language), ориентированного на об- работку коммерческих документов.

Для объявления данных типа запись в Паскале используется служебное слово record (запись). Продемонстрируем этот тип данных на примере описания полей в каждой строке табл. 8.1.

Таблица 8.1

Тип

Знак

Длина (байт)

Количество значащих цифр

Диапазон

Min

Max

Byte

Нет

1

3

0

255

ShortInt

Есть

1

3

–127

128

Word

Нет

2

5

0

65 535

type

MinMax = record Min : extended; Max : extended;

end;

NumData = record

Tip : string [12];  {поле для обозначения типа} Sgn : boolean;      {поле для указания знака} Len : byte;         {поле для указания длины}

Num_Cif : byte;     {поле для числа значащих цифр} Range : MinMax;     {поле для задания диапазона}

end;

Структура полей каждой строки таблицы, эквивалентная формату записи, обычно описывается в разделе типов данных. Описание начинается с имени типа, вслед за которым после знака равенства записывается служебное слово record. Каждое поле записи характеризуется именем поля и типом значения, которое мо- жет на этом поле располагаться. Концом описания записи считается закрывающая операторная "скобка" end, завершаемая символом точки с запятой.

В нашем примере поле Диапазон (имя Range), в свою очередь, является подтаб-

лицей, содержащей два поля с именами Min и Max. Поэтому в описании типов сна- чала описана запись с именем MinMax, а уже потом этот тип данного использован в описании формата поля Range.

После описания структуры данных в разделе type мы можем использовать ука- занный тип для описания отдельных переменных или массивов:

var

b1: NumData;

a1: array [1..10] of NumData;

Для присвоения конкретных значений полям записи используются составные

имена:

b1.Tip := ‘byte';      {это поле имеет тип String} b1.Sgn := false;       {это поле имеет тип boolean} b1.Len := 1;           {это поле имеет тип byte} b1.Num_Cif := 3;       {это поле имеет тип byte} b1.Range.Min := 0;     {это поле имеет тип extended} b1.Range.Max := 255;

a1[1].Tip := ‘ShortInt';

a1[1].Sgn := true;

a1[1].Len := 1;

a1[1].Num_Cif := 3;

a1[1].Range.Min := -127;

a1[1].Range.Max := 128;

Описание переменных типа запись можно совместить с формированием на- чального значения полей:

type

TPoint = record x, y : single;

end;

TVector = array [0..1] of TPoint; var

P1: TPoint = (x:0.5; y:-0.5);

Line: TVector = ((x:0; y:0),(x:1.5; y:2.0));

В качестве типов полей могут выступать и перечисления:

type

Person = record Name: string [20];

Sex: (Male, Female); Age: byte;

Married: Boolean;

end; var

a1: Person; const

b1: Person = (Name:’Иванов'; Sex:Male; Age:25; Married:true);

Если переменные описаны с помощью одного и того же типа, то они совмести- мы по присваиванию, и в программе может быть использован оператор следующе- го вида:

a1 := b1;

Данные типа запись появились в одной из самых ранних версий Паскаля и дол- гое время их основным назначением были обработка таблиц, хранящихся в опера- тивной памяти, и обмен данными с записеориентированными файлами. Однако именно с записями были связаны первые шаги по развитию языка Паскаль в на- правлении объектно-ориентированного программирования.

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии