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

Лабораторная работа 11.Данных. Записи. Создание баз данных средствами турбо-паскаля

11.1Тип данных - запись

ЗАПИСЬ

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

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

Описание:

TYPE <ИМЯ ТИПА>=RECORD

< СПИСОК ПОЛЕЙ>

END;

Где <СПИСОК ПОЛЕЙ> - список имен полей и их типов.

ПРИМЕРЫ:

TYPE

BirthDay= RECORD DAY,MONTH:BYTE; YEAR:WORD; END;

VAR

A,B:BirthDay; {две переменные типа день рождение}

C: RECORD NAME STRING[10]; BD:BirthDay; END;

{переменная содержит два поля: имя и день рождения}

11.2Операции, используемые при работе с записями

  • ОПЕРАЦИЯ УТОЧНЕНИЯ

используется для доступа к полям записи

ПРИМЕРЫ:

A.DAY:=1;

A.MONTH:=5; {дата 1 мая}

  • ОПЕРАЦИЯ ПРИСВАИВАНИЯ

ПРИМЕРЫ:

B:=A;

{все значения полей A копируются в B}

  • ОПЕРАТОР WITH…DO…

упрощает доступ к полям записи.

Описание:

WITH <СПИСОК ПОЛЕЙ> DO <ОПЕРАЦИЯ>;

НАПРИМЕР, СЛЕДУЮЩИЕ ЗАПИСИ РАВНОСИЛЬНЫ:

WITH C,BD DO MONTH:=4;

WITH C.BD DO MONTH:=4;

WITH C DO WITH BD DO MONTH:=4;

C.BD.MONTH:=4;

Обычно используется для группы операторов:

WITH C.BD DO BEGIN

MONTH:=4; YEAR:=2004; DAY:=1;

END;

11.3Вариантные записи

Используются для записей с переменной структурой полей.

Вариантная часть всегда одна и располагается в конце структуры после фиксированных полей. Для описания используется конструкция CASE…OF (без END)

Описание:

TYPE <ИМЯ ТИПА>=RECORD

< СПИСОК ФИКСИРОВАННЫХ ПОЛЕЙ>

CASE <ТИП> OF

<К1>:(<СПИСОК ПОЛЕЙ 1>);

<Кn>:(<СПИСОК ПОЛЕЙ n>);

END;

Где <ТИП> - любой базовый или пользовательский тип, причем константы <К1>,…, <Кn> могут и не относится к этому типу.

ПРИМЕР ВАРИАНТНОЙ ЗАПИСИ

TYPE

PUBLICATION= RECORD {тип - публикация}

AUTHOR,TITLE:STRING; {общие поля – автор, заголовок, год}

YEAR:WORD;

CASE BOOLEAN OF

BOOK:(BUBHOUSE:STRING: PAGES:WORD); {книга}

ARTICLE:(JOURNAL:STRING; NUMBERJ:BYTE;PREMIER,LAST:WORD); {статья}

PEPER:( NUMBERJR:BYTE; PREMIER,LAST:WORD); {реферат}

END;