Лабораторная работа № 26

Написание программы на языке Паскаль с использованием записей с вариантами

Цель работы: формирование знаний и умений по работе с записями с вариантами. Приобретение навыков работы с вариантными полями.

Краткие теоретические сведения

Записи, рассмотренные в предыдущей лабораторной работе, имеют строго определенную структуру. В некоторых случаях это резко ограничивает возможности их применения. Поэтому в языке Паскаль имеется возможность задать тип записи, содержащий произвольное число вариантов структуры. Такие записи называются записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи, но не идентичны по форме. Они состоят из фиксированной и вариантной частей.

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

Формат:

Type

<имя типа> = Record

Case <поле признака>: <имя типа> of

<константа выбора 1>: (поле, …: тип);

<константа выбора n>: (поле, …: тип);

End;

Компоненты каждого варианта (идентификаторы полей и их типы) заключаются в круглые скобки. У части Case нет отдельного end. Одно слово end заканчивает всю конструкцию записи с вариантами. Количество полей каждого из вариантов не ограничено. Объем памяти, необходимый для записи с вариантами, складывается из объемов полей фиксированной части и максимального по объему поля переменной части.

Пример:

Type

Rec= Record

Number:Byte;

Code:Integer;

Case Flag:Boolean of

True:(Proce1:Integer);

False:(Price2:Real);

End;

Var

PRec: Rec;

В данном примере была объявлена запись с именем Rec, у которой поля Number и Code расположены в фиксированной части записи, они доступны в программе в любой текущий момент независимо от значения поля признака. Поле Price 1 может использоваться только в том случае, если значение поля признака Flag равно True. Поле Price 2 доступно в противоположном случае, т.е. если значение Flag равно False.

При использовании записей с вариантами необходимо придерживаться следующих правил:

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

3 запись может иметь только одну вариантную часть, причем вариантная часть должна размещаться в конце записи

3 если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом: < метка>: ();


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow