- •Кафедра прикладной математики лекция № 16. Тема: «структурированные типы данных»
- •1. Пользовательские типы.
- •1.1. Перечисляемый тип.
- •1.2. Интервальный тип (диапозон).
- •2. Структурированные типы данных.
- •3. Тождественность и совместимость типов.
- •4. Массивы.
- •4.1. Объявление массива.
- •4.2. Действия над массивами.
- •4.3. Действия над элементами массива.
- •4.4. Многомерные массивы.
- •5. Строковый тип данных.
- •5.1. Строковые выражения.
- •5.2. Строковые процедуры и функции.
- •6. Множественный тип данных.
- •6.1. Операции над множествами.
- •Пример 3.
- •7. Запись.
- •7.1. Оператор with.
- •7.2. Записи с вариантами.
- •Контрольные вопросы
- •Задачи для самостоятельной работы
- •Лекция № 16 по курсу «информатика»
7. Запись.
В практике программирования приходится иметь дело с данными, которые естественным образом состоят из других данных. Например, сведения о студентах содержат имя, фамилию, отчество, число, месяц и год рождения, домашний адрес, результаты экзаменационных сессий и прочую информацию. Для представления подобной информации в языке Pascal используется тип запись.
Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается идентификатором record и заканчивается зарезервированным словом end. Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.
Формат:
type <имя типа> = record
<идентификатор поля> : <тип компонента>;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
<идентификатор поля> : <тип компонента>
end;
var <имя переменной> : <имя типа>;
Например:
type car = record
Number : integer; {номер}
Marka : string[20]; {марка автомобиля}
FIO : string[40]; {Ф.И.О. владельца}
Address : string[60] {адрес владельца}
end;
var M, V : car;
В данном примере запись car содержит четыре компонента. Доступ к полям записи осуществляется через переменную типа «запись». (Это переменные M и V типа car).
Идентификатор поля должен быть уникален в пределах записи, однако во избежание ошибок лучше делать его уникальным в пределах всей программы. Объем памяти, необходимый для записи, складывается из длин полей.
Значения полей записи могут быть использованы в выражениях. Имена отдельных полей не применяются по аналогии с идентификаторами переменных, поскольку может быть несколько записей одинакового типа. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи car, надо записать:
M.Number, M.Marka, M.FIO, M.Address
Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания. Составные имена можно, в частности, использовать в операторах ввода-вывода. Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип. Например: V:=M;
После выполнения этого оператора значения полей записи V станут равны значениям соответствующих полей записи M. В ряде задач удобно пользоваться массивами из записей.