Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНые РАБОТАы с 9.doc
Скачиваний:
26
Добавлен:
10.05.2015
Размер:
545.28 Кб
Скачать

77

Лабораторная работа №9 Комбиированный тип - запись Тип данных – Запись

Запись - это структура данных, которая используется для представления в программе объектов, обладающих несколькими свойствами разного типа. Например, объект Книга, может быть определена свойствами: фамилия автора, название книги, год издания, издательство. Запись позволяет представить объект, обладающих несколькими свойствами, одной переменной.

Формат определения типа.

Тип данных Запись (Record) состоит из двух частей: фиксированная часть; вариантная часть. Вариантная часть начинается с ключевого слова Case, располагается в конце определения типа, является необязательной.

type

Имя типа=record

Имя поля 1: тип поля;

Имя поля 2 : тип поля;

…………………………

Имя поля 3 : тип поля;

[case идентификатор: имя типа of

Константа1:(имя поля1:тип; имя поля2: тип;…..имя поляN:тип]);

Константа2:(имя поля1:тип; имя поля2: тип;…..имя поляN:тип);

……………………………………………………………….

КонстантаN:(имя поля1:тип; имя поля2: тип;…..имя поляN:тип);]

End;

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

Правила создания записного типа

        1. Имя поля должно быть уникально в пределах одного типа Record.

        2. Тип поля – это любой тип языка Delphi кроме файлового.

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

Примеры определения переменных типа запись

  1. Для хранения информации о точке на плоскости.

Var

R:record x:real; y:real end;

  1. Переменная должна хранить фамилию студента и шесть оценок за экзамены в сессию.

Type

TSessia=record

Fam:string[40];

Marke:array [1..6] of byte;

End;

Var

S:TSessia;

  1. Переменная должна хранить анкетные данные сотрудника: фамилия, дата рождения, адрес.

Type

Tdate=record

Day:1..31;

Month:1..12;

Year:word

End;

Tadress=record

City:string[30];

Street:string[50];

NumHause, NumRoom:byte

End;

Temploye=record

Fam:string[40];

Date:Tdate;

Adress:Tadress

End;

Var

E:Temploye;

Представление переменной типа запись в памяти

Переменная R для представления точки на плоскости

x

y

Переменная S типа Tsession

Fam

marke

Переменная Е типа Temploye

day

month

year

City

Street

NumHouse

NumRoom

Fam

Date

Adress

Доступ к значению поля в записи

Для доступа к значению поля используется уточненное имя. Уточненное имя формируется по правилу: имя переменной.имя поля. Если имя поля в свою очередь представляет переменную типа запись, то правило распостраняется на имя этого поля.

Примеры формирования имени.

      1. Имя поля переменной R.

R.x или R.y

      1. Доступ к значению оценки по третьему экзамену в сессию.

S.marke[3]

      1. Доступ к значению поля City переменной E.

E.Adress.City

Расчет объема памяти, выделяемого переменной типа запись

Количесво байтов памяти, выделяемой полям фиксированной части плюс количество байтов для самой длинной альтернативы вариантной части.