Тип данных запись, отличие от массива
Запись - это структура данных, состоящая из фиксированною числа разнотипныхкомпонент, называемых полямизаписи. Записи используются для представления разнородной, но логически связанной информации. Каждое поле записи имеет имя, которое дается ему при объявлении записи.
Главное отличие записи от массива заключается в следующем: массив хранит однотипную информацию, а каждый элемент записи содержит данные разного типа.
Описание записи
В Borland Pascal определены записи двух типов: записи с фиксированными полями и вариантные записи.
Как любой тип данных языка, записи можно определить двумя способами:
§ при объявлении переменных, например:
Var Zapl, Zap2: record {две записи, состоящие из 5 нолей}
F,S;real; {два поля вещественного типа}
А,В:integer; {два поля целого типа}
C:char; {поле символьного типа}
end;
Zap3: record {запись, состоящая из 3 полей}
S: string[80]; {символьная строка длиной 80 байт}
A: array [1..20] of real; {одномерный массив на 20вещественных чисел}
Flag: boolean; {поле логического типа}
end;...
§ предварительно объявив тип записи, например:
Туре Zt1 = record {тип «запись, состоящая из 5 полей»)
F,S: real; {два поля вещественного типа}
A,B: integer; {два поля целого типа}
C: char; {поле символьного типа}
end;
Zt2 = record {тип «запись, состоящая из 3 полей»}
S: siring [80]; {символьная строка длиной 80 байт}
A: array [1..20] of real; {одномерный массив на 20 вещественных чисел}
Flag: Boolean; {поле логического типа}
end;
Var Zap1, Zap2:Zt1; {две переменных типа Zt1}
Zap3:Zt2; ... {переменная типа Zt2 }
В качестве полей записи можно использовать другие записи, как определенные ранее, так и определяемые внутри записи, например:
Type Human: record {запись о сотруднике}
Fio: record {поле типа «запись из 3 полей»}
Fam, {фамилия}
Name, {имя}
Otch: string; {и отчество сотрудника»}
end; {Fio}
BirthDay: record {поле типа «запись из 3 полей»}
Day: l..31; {день}
Month: 1..12; {месяц}
Year: word; {год рождения}
end; {Birthday}
end; ...{Human}
или
type
Data = record
Day: l..31; {день}
Month: 1..12; {месяц}
Year: word; {год рождения}
end; {Birthday}
Famio = record
Fam. Name, Otch: string;
end;
Human = record {тип «запись о сотруднике»}
Fio: Famio; {поле типа Famio}
BirthDay: Data; {поле типа Data }
end;...
Можно объявить как отдельные переменные программы, так и массивы записей, например:
Var Sotr: Human;
Otdel: array [1..20] of Human;
Присвоить начальное значение конкретной записи можно, используя типизированные константы. Начальное значение полей записи при этом указывается в скобках через точку с запятой, причем для каждою поля указывается имя и значение через двоеточие, например:
Const
BirthDay: Data = (Year:1973; Momh:6; Day:30); ...
Дата добавления: 2015-12-01; просмотров: 2565;