Лекция №13. Комбинированные типы - записи

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

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

Записи объявляются следующим способом:

1. Сначала объявляется тип записи:

 

Type

ИмяТипа = record

ИмяПоля1:ТипПоля1;

ИмяПоля2: ТипПоля2;

. . .

End;

2. Затем объявляются переменные соответствующего типа:

Var

ИмяПеременной: ИмяТипа;

Например:

Type

Avto = record

Number: integer; {номер автомобиля}

Marka: string[20]; {марка автомобиля}

Fio: string[40]; {фамилия владельца}

Address: string[60]; {адрес владельца}

End;

Var

m,v: avto;

 


Type

Birthday = record

Day, Month: byte; {день и месяц рождения}

Year: word; {год рождения}

End;

Var

a,b: BirthDay;

 

Обращение к значению поля осуществляется с помощью имени переменной и имени поля, разделенных точкой. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи avto,надо записать:

 

M.number, m.marka, m.fio, m.address

 

Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания. Например:

 

m.number:= 1234;

m.marka:= 'Audi – 200';

m.fio:= 'Иванов В.В.';

m.address:= 'ул. Гагарина, 25, кв. 47';

 

a.day:= 25;

b.year:= 2012;

Составные имена можно использовать в операторах ввода/вывода:

readln(m.number, m.marka, m.fio, m.address);

write(m.number:4, m.marka:10, m.fio:13, m.address:23);

 

Нельзя использовать в операторах ввода/вывода запись целиком.

Как и в массиве, значения переменных типа записи можно присваивать другим переменным того же типа, например:

a:= b;

v:= m;

После выполнения этого оператора значения полей записей vи aстанут равными значениям соответствующих полей записейmи b.

В ряде задач удобно пользоваться массивами из записей. Их можно описать следующим образом:

Type

Person = record

Fio: string[20];

Age: 1..99;

Prof: string[30];

End;

Var

Mas: array [1..50] of Person;

 

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

With <переменная> do <оператор>;

Здесь With, do - зарезервированные слова, <переменная> – имя переменной типа запись, за которым следует список вложенных полей, <оператор> – любой оператор ТР. Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными.

Например:

With m do

Begin

number:= 1234;

marka:= 'Audi – 200';

fio:= 'Иванов В.В.';

address:= 'ул. Гагарина, 25, кв. 47';

End;









Дата добавления: 2017-11-04; просмотров: 607;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.