КАТЕГОРИИ: Архитектура-(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; {декан}
Дата добавления: 2014-01-11; Просмотров: 445; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |