Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры епта.docx
Скачиваний:
3
Добавлен:
25.09.2019
Размер:
343 Кб
Скачать
☆

14.Записи с вариантами. Синтаксис задания. Особенности задания записей с полем признака и без него.Записи, содержащие только общую часть, имеют строго определенную структуру.

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

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

определяемого типа.Вариантная часть начинается зарезервированным словом Case и

описывает несколько вариантов структуры записи. Синтаксис вариантной части

представляет рисунок 3.6.

Диапазон (см. рисунок 3.6) имеет формат, который иллюстрирует

рисунок 3.7.

Рисунок 3.7 – Синтаксическая диаграмма диапазона

В каждый момент выполнения программы один из вариантов структуры

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

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

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

только идентификатор типа, и программист обязан сам следить за тем, какой

вариант записи является активным.

Список полей каждого варианта заключается в скобки.

Например, пусть вриантная часть записи имеет вид:

а) Case I: Integer Of ...

Здесь идентификатор I определяет поле признака, которое является

самостоятельным полем общей части записи.

б) Case Integer Of ...

Здесь поле признака отсутствует. Варианты определяются целыми

значениями в списке вариантов.

Пример 3.5.Объявление записи с вариантами, содержащей поле признака.

Type

Anketa1 = Record

{Общая часть}

Fio: Record

Fam: String[20];

Im: String[10];

Ot: String[20];

End;

{Вариантная часть}

Case Pol: (Men, Women) Of

Men: (Vozr1: 20..30);

Women: (Vozr2: 18..25)

End;

В вариантной части все имена полей должны быть уникальны, даже если они встречаются в разных вариантах.Запись может иметь только одну вариантную часть, она должна размещаться в конце записи.Но вариантная часть может быть вложенной в другую вариантную часть.Если вариантная часть, соответствующая какому-либо значению признака, является пустой, то она записывается следующим образом: <Диапазон>: ( ) Например, если в предыдущем примере отсутствуют поля при значении

признака, равном Women, то этот вариант запишется так: Women: ( )

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

вариантной части.Поля записи размещаются в памяти последовательно, в соответствии с

объявлением.

15.Оператор присоединения. Назначение. Формат. Полная и сокращенная формы оператора присоединения. Примеры использования.

.Для сокращения состава именного поля используется оператор With.Оператор With облегчает доступк полям записей и минимизирует повторение адреса вычисления.Внутри оператора к полям можно обращатся как к простым переменным.Указатель списка переменной типа запись оператора With является сокращенной формой записи оператора With.* With z1,z2…zn do <Оператор>= With z1* With z2…*with zn do <Оператор>.

Из полн.форм. опреатора With видно что идентификатор поля в этом операторе обозначает компонент записи из ближнего обьявленного оператора With в котором указатель переменной с таким же полем.* With An1,Fio,Data,..R do*begin*Fam:=’Иванов’;*Im:=’’;*Ot:=’’;*Pol:=’’;*God:=’’;*Mes:=’’;*Den:=’’*;Prof:=’’;*End.;*Если несколько переменных из списка записи оператора опреатора With имеют поля с одним и тем же идентификаторы,то внутри оператора With этот идентификаторобозначает поле той переменной которая указвается в списке позже.Имена отдельных полей записей могут совпадать с именем переменной(имя переменной в операторе With недоступно).

16.Множественный тип. Синтаксис задания. Базовый тип множества. Представление в памяти. Конструктор множества. Множественный тип (тип Set) соответствует понятию множества в математике.В Паскале допускаются только конечные множества. Максимальное

количество элементов в множестве – 256. Все элементы множества должны быть значениями одного типа. Тип элементов множества называется базовым

типом множества.Базовым типом множества может быть любой скалярный тип, за исключением вещественных типов. Целочисленные типы в качестве базового

типа могут использоваться только в виде диапазона 0 .. 255 или его поддиапазонов.Данные типа Set хранятся в памяти в унитарном коде и могут занимать от

одного до 32-х байтов. Объем памяти, занимаемый одним элементом множества, равен одному биту. Каждому элементу во множестве жестко

соответствует свой номер бита. Значением переменной множественного типа является множество.Конкретные значения множественного типа задаются с помощью конструктора множества. Его синтаксис определяет рисунок 4.1.

Как следует из синтаксической диаграммы, конструктор множества –

это список разделенных запятой выражений или диапазонов, заключенный в

квадратные скобки. При указании диапазона все значения из диапазона входят

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

может содержать более 256 элементов. Конструктор множества – это фактически множественная константа.Порядок перечисления элементов в множестве не играет роли. Каждый

элемент учитывается только один раз.Например, множества [1, 2, 3] и [1, 3, 2] – это одно и тоже множество. При задании множественного типа необходимо задать базовый тип. В совокупность значений множественного типа входят все возможные множества, являющиеся произвольными комбинациями значений базового типа.Синтаксис задания множественного типа имеет вид, который представляет рисунок 4.2.

Для присваивания значений множественным переменным используются

множественные выражения.Множественное выражение – это выражение, значением которого

является множество. Частным случаем множественных выражений являются

множественные переменные и конструкторы множества.

Пример 4.3.Объявление множественного типа.

Type

Ned = (Pn, Vt, Sr, Ch, Pt, Sb, Vs);

Denned = Set Of Ned; {Используется имя базового типа}

Log = Set Of Boolean; {Используется имя базового типа}

Var

Den: Denned;

L1, L: Log;