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

8.2. Записи

Любой объект материального и духовного мира имеет ряд параметров и характеристик. Например, для описания товара следует указать его наименование, назначение, цену, гарантийный срок, габаритные размеры, вес, материал, из которого он изготовлен и т.д. Для хранения информации о характеристиках объекта предназначен специальный тип данных, который называется запись. Использование записей удобно использовать при создании и обработке базы данных – списка объектов с набором различных характеристик.

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

Type имя_записи = RECORD

Поле1;

Поле2;

ПолеК;

END;

Здесь Полеi – это i-тая характеристика (параметр, свойство)объекта, задаваемая как переменная, т.е. поле имеет структуру:

Имя: тип;

Типом поля может быть любой тип, разрешенный в Паскале, кроме файла.

Пусть необходимо создать базу данных сотрудников некоторого учреждения с указанием для каждого сотрудника ФИО, почтового адреса, должности и оклада. Тогда запись для сотрудника объявить в виде:

Type

Anketa = RECORD

FIO: String[30];

Index: Longint;

Gorod: String[8];

Ulica: String [10];

n-dom: byte;

n_kv: word;

doljnost:String[15];

oklad:Real

END;

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

Пусть имеются записи Adres и Rabota и надо задать запись Anketa. Тогда эквивалентным предыдущему заданию типа Anketa будет следующее описание:

TYPE

Adres=RECORD

Index: Longint;

Gorod: String[8];

Ulica: String [10];

n-dom: byte;

n_kv: word;

END;

Rabota=RECORD

doljnost:String[15];

oklad:Real

END;

Anketa = RECORD

FIO: String[30];

Adr:Adres;

Rab:Rabota;

END;

Пусть объявлена переменная типа Anketa:

Var A:Anketa;

Тогда обращение к полям, например, для ввода сведений об анкетируемом сотруднике, будет выполняться как к переменным соответствующих типов, но имена полей будут составными, состоящими из имени переменной и имени поля, разделенных точкой:

A.FIO:=’Козырев Б.Р.’; A.Adr.Index:=123654; A.Adr.Gorod:=’Москва’; A.Rab.oklad:=3500;

Для сокращения длины имени при многократном обращении к полям переменной типа Record целесообразно применять оператор With, имеющий структуру:

WITH перем. или список переменных типа record DO оператор;

При этом для обращения к полям вложенных друг в друга записей возможна вложенность и операторов With. Тогда предыдущий пример обращения к полям записи при использовании оператора With будет выглядеть так:

With A do

begin FIO:=’Козырев Б.Р.’;

With Adr do

begin Index:=123654;

Gorod:=’Москва’;…

end;

With Rab do

begin doljnost:=’Экономист’;

oklad:= 3500;

end

end;