Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

A, B, C : Complex;{A, B, C — переменные типа Complex}begin




Complex = record

Type

With RV1, RV2,..., RVn do...

Type

Type

ОПИСАНИЕ ТИПА ЗАПИСЬ

Лекция №8 Типы данных, определяемые пользователем. Записи. Описание файлового типа.

 

 

Запись — это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.
Формат:

type

<имя типа> = record

<Идентификатор поля>:<тип компонента>;

...

<Идентификатор поля>:<тип компонента>
end;

var

<идентификатор,...>: <имя типа>;

Пример:

Car = record

Number:integer; {Номер}
Marka:string[20]; {Марка автомобиля}
FIO:string[40]; {Фамилия, инициалы владельца}
Address:string[60] {Адрес владельца}
end;

var

M, V: Car;

 

В данном примере запись Car содержит четыре компонента: номер, название марки машины, фамилию владельца и его адрес. Доступ к полям записи осуществляется через переменную типа "запись". В нашем случае это переменные M и V типа Car.

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

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

M.Number, M.Marka, M.FIO, M.Address

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

 

Пример:

M.Number:= 1678;

M.Marka:= ‘ГАЗ – 24’;

M.FIO:= ‘Демьяшкин В.А.’;

M.Address:= ‘ул. Пушкина 12 – 31’;

 

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

Read(M.Number, M.Marka, M.FIO, M.Address);

Write(M.Number:4, M.Marka:7, M.FIO:12, M.Address:25);

Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например,
V:= M;

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

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

Person = record
FO: string[20];

Age: 1.. 99;

Prof: string[30]
end;

var

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

 

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

with <переменная типа запись> do <оператор>;

Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными, т. е. без указания перед идентификатором поля имени переменной, определяющей запись.
Пример:

Присвоить значения полям записи Car с помощью оператора with.
with M do begin
Number:= 2347;

Marka:= ‘ГАЗ – 24’;

FIO:= ‘Петров В.И.’;

Address: = ‘ул. Остужева, 5’
end;

 

Паскаль допускает вложение записей друг в друга (т. е. поле в записи может быть в свою очередь тоже записью), соответственно оператор with тоже может быть вложенным:

with RV1 do

with RV2 do

with RVn do...
что эквивалентно записи

Уровень вложения не должен превышать 9.

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

RealPart: real; {Действительная часть}
ImagePart: real;
{Мнимая часть}
end;

var

A.RealPart:= 6.3;

A.ImagePart:= 1.9;




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


Дата добавления: 2013-12-12; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.