Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Вложенные записи

Объявление типа записи

Записи

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

код автор название издательство год

Запись имеет свое имя, например, Karta. Для обращения к отдельным компонентам записи ее полям также присваиваются имена. Структура объявления типа записи:

< имя типа > = record < список полей > end

Тип записи Karta можно объявить следующим образом:

type Karta = record Kod,God: integer; Avtor, Nazvanie, Izdat: string; end; var Kart1, Kart2: Karta; {Kart1, Kart2 - переменные типа Karta}

Тип записи может быть использован непосредственно при объявлении переменных, например:

var Uravn: record A,B,C: real end;

Переменная Uravn является записью и состоит из трех полей A, B, C вещественного типа.
Обращение к полю записи осуществляется по составному имени, которое содержит имя переменной типа Record, точку и имя поля, например:

Kart1.Kod:= 681;
Kart1.Avtor:= 'Фаронов';
Kart1.Nazvanie:= 'Программирование';
Kart1.Izdat:= 'МВТУ';
Kart1.God
:= 1991;

Необходимо отметить, что переменные типа записи можно использовать только в операторах присваивания, например:

Kart2:= Kart1;

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

Объявим соответствующую структуру данных:

type Kod1 = record Bukva: char; Nomer: integer; end; KartaR = record Kod: Kod1; Avtor: record Fio: record Fam, Im, Ot: string; end; GodR: integer; end; end; var Kr1: KartaR;

Переменная Kr1 является вложенной записью, т.к. в типе записи KartaR объявлен тип Avtor, являющийся типом записи. Как видно из примера, можно заранее объявить ти п записи (Kod1), а потом использовать его в объявлении поля или указать тип записи непосредс твенно при описании поля (Fio). Теперь можно обратиться к отдельным полям записи Kr1, задавая их полные имена:

Kr1.Avtor.Fio.Fam:= 'Зуев';
Kr1.Avtor.GodR:= 1950;
Kr1.Kod.Bukva:= 'П';

Для упрощения доступа к отдельным полям записи используется оператор With <список имен> do <оператор>.
Если объявлена переменная

var Uravn: record A,B,C: real end;,

то вместо операторов присваивания вида Uravn.A:= -2.5; Uravn.B:= 37.2; Uravn.C:= 0.7; можно написать, используя оператор With:

with Uravn do begin A:= -2.5; B:= 37.2; C:= 0.7; end;

Оператор With присоединяет префикс Uravn к именам полей A, B, C. Для вложенной записи Kr1;

with Kr1,Avtor,Fio do begin Fam:= 'Иванов'; Im:= 'Виктор'; Ot:= 'Иванович'; end;

Следует отметить, что кроме удобства записи оператор With позволяет компилятору оптимизировать время доступа к полям, указанным в области действия оператора.

<== предыдущая лекция | следующая лекция ==>
Определение индексов элементов матрицы | 
Поделиться с друзьями:


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


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



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




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