Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_lectures_small.doc
Скачиваний:
13
Добавлен:
23.03.2015
Размер:
339.46 Кб
Скачать

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; {декан}

      1. Использование записей в программе

Можно обратиться ко всей записи по ее имени, если запись является самостоятельной переменной или частью другой переменной сложного типа. Можно обратиться к отдельному полю записи (которое может быть переменной простого или сложного типа, или указателем). Для обращения к полю нужно использовать квалификатор доступа к полю, который состоит из точки и имени поля. Такой квалификатор записывается после имени записи, или после квалификатора, выделяющего запись из другого сложного типа.

Следующий пример основан на описаниях предыдущего примера.

Dean

Обращение к записи, содержащей сведения о декане.

Dean.Faculty

Обращение к полю "Факультет" записи "Декан".

AcademicGroup[2]

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

AcademicGroup[2].Curator

Обращение к полю второй группы, содержащему запись о кураторе.

AcademicGroup[2].Curator.ID.Surname

Обращение к полю, содержащему фамилию куратора второй группы.

AcademicGroup[2].Student[1]

Обращение к записи о первом студенте во второй группе.

AcademicGroup[2].Student[1].Hostel

Обращение к полю записи о первом студенте второй группы, содержащему признак того, живет ли этот студент в общежитии.

AcademicGroup[2].Student[1].ID

Обращение к записи, содержащей персональные сведения о студенте.

AcademicGroup[2].Student[1].ID.Age

Обращение к полю, содержащему возраст первого студента второй группы.

AcademicGroup[2].Student[1].ID.Surname[1]

Обращение к первой букве фамилии первого студента второй группы.

      1. Оператор With

Этот оператор облегчает работу с записями при необходимости многократного обращения к полям одной и той же записи.

Синтаксис:

оператор::="With" <запись> "do" <оператор>.

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

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

Следующий пример также основан на описаниях записей, сделанных ранее. Здесь назначается куратор группы из списка преподавателей и возраст студентов группы увеличивается на 1.

With AcademicGroup[2] do begin {работа с выделенной записью}

Curator:=Teacher[4]; {четвертый преподаватель назначается куратором второй группы}

for i:=1 to 30 do

With Student[i].ID do {выделена запись личных данных}

Age:=Age+1 {работа с полем возраста}

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]