Студопедия

КАТЕГОРИИ:


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

Конструкция записи, тип записи и переменная типа запись

Записи

Квалификаторы

Ранее упоминалось, что к элементу переменной сложного типа можно обратиться с помощью квалификатора следующим образом:

<доступ к элементу>::= <имя> [<квалификатор>].

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

<квалификатор>::=("["<список индексов>"]" | "."<имя поля> | "^"){<квалификатор>}.

Таким образом, квалификаторы могут быть трех видов. Первый вид уже описан в предыдущем разделе, он используется для доступа к элементам массивов, второй вид используется для доступа к элементам записей, третий вид используется для доступа к переменным, на которые указывает переменная типа указатель. Подробнее о квалификаторах доступа к элементам записи и доступа по указателю – в соответствующих подразделах.

Как следует из синтаксиса, за одним квалификатором может, при необходимости, следовать другой, что обеспечивает доступ к элементам переменных сколь угодно сложной структуры.

Запись – это переменная, состоящая из нескольких элементов (полей) данных разного типа.

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

Синтаксис конструкции записи:

<конструкция записи>::="Record" <описание полей>";"<описание полей> "End".

<описание полей>::=<имя>{","имя} ":" (<имя типа>|<конструкция типа>).

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

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

Пример. Разделы описаний типов и переменных:

Type Ch=Array [1..16] of Char;

Person=Record {данные о человеке}

Surname, {Два поля одного типа –}

Name:Ch; {фамилия и имя}

Gender:(Male, Female); {пол – муж./жен.}

Age:Integer {Возраст, лет}

End;

StudentR=Record {данные о студенте}

ID:Person; {личные данные}

ListNo, {номер по списку}

YearOfStudy,{год обучения (курс)}

YearOfEntry:Integer; {год поступления}

Scholarship,{стипендия}

MilitaryTraining, {военная подготовка}

Hostel: Boolean {общежитие}

End;

TeacherR=Record {данные о преподавателе}

ID:Person; {личные данные}

Faculty, {факультет}

Department: Ch {кафедра}

End;

GroupR=Record {Данные по группе}

Index: Ch; {Название/номер группы}

Curator: TeacherR; {Куратор группы}

Student: Array[1..30] of StudentR; {массив записей о студентах}

End;

Var AcademicGroup: Array [1..40] of GroupR; {массив академических групп}

Teacher: Array[1..60] of TeacherR; {массив преподавателей}

Dean:TeacherR; {декан}

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


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


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



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




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