Записи.
Сложные типы данных в языке Pascal
Запись может входить в состав данных более сложной структуры. Можно говорить, например, о массивах и файлах, состоящих из записей. Запись может быть полем другой записи. Таким образом, запись — это набор разнотипных данных, объединенных общим именем. Более формально, запись содержит определенное число компонент, называемых полями. Например, доступ к полю day переменной A возможен по имени… Читать ещё >
Записи. Сложные типы данных в языке Pascal (реферат, курсовая, диплом, контрольная)
Значениями так называемого комбинированного типа данных являются записи. Комбинированный тип задает образ структуры объекта — данного этого типа, каждая часть которой (поле) может иметь совершенно различные характеристики.
Таким образом, запись — это набор разнотипных данных, объединенных общим именем. Более формально, запись содержит определенное число компонент, называемых полями.
В определении типа записи задается имя и тип каждого поля записи:
:= Record End.
:= |; |.
:= {,}.
:= {,}:
Синтаксис записей, содержащих вариантную часть — записей с вариантами — мы определим ниже.
Комбинированный тип Фиксированная секция часть записи Рис. 1. Синтаксические диаграммы записей с вариантами
Примеры.
Пример 1.
Type Complex = Record.
Re, Im: Real.
end;
Var z1, z2: Complex;
Пример 2.
Type Name = array [1.15] of Char;
Student = Record.
F1, F2, F3: Name;
Day: 1…31;
Month: 1…12;
Year: integer;
StudDoc: integer.
end;
Var Group: array [1.25] of student;
S: Student;
При обозначении компоненты записи в программе следом за именем записи ставится точка, а затем имя соответствующего поля. Таким образом осуществляется доступ к этой компоненте. Например:
1) z1. Re: = 2; z1. Im: = 3;
M := sqrt (sqr (z1.Re) + sqr (z1.Im));
2) S. F1:= Group[i]. F1;
S.Year:= Group [i + 1]. Year;
writeln (Group[i]. StudDoc);
Запись может входить в состав данных более сложной структуры. Можно говорить, например, о массивах и файлах, состоящих из записей. Запись может быть полем другой записи.
Пример 3.
Type Name = array[1.20] of Char;
FullName = Record.
Name1, Name2, Name3: Name.
End;
Date = Record.
Day: 1.31;
Month: 1.12;
Year: integer.
end;
Student = Record.
StudName: FullName;
BirthDay: Date;
StudDoc: integer.
end;
Var StudGroup: Array [1.30] of Stugent;
A, B: Student;
Например, доступ к полю day переменной A возможен по имени A.BirthDay.Day, а к первой букве поля Name2 имени студента с номером 13 переменной StudGroup — по имени StudGroup[13]. StudName.Name2[1].