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

20.2. Интервальный тип

Этот тип можно определить, указав некоторый диапазон значений из любого другого предварительно определенного порядкового типа, который в этом случае называют базовым. Диапазон определяется указанием наибольшего и наименьшего постоянных значений, входящих в диапазон, причем нижняя граница не должна превышать верхнюю.

Вновь задаваемый тип можно предварительно описать в разделе Type, как это показано ниже.

Type

Index = 0..63;

Letter = ’A’..’Z’;

или указывать его при описании переменных в разделе Var:

Const

Nmax=100;

Var

Curs : 1..5;

Bukva : ’a’..’z’;

Mas : Array[1..Nmax] Of Real;

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

Если при выполнении программы значение переменной, описанной с помощью интервального типа, выходит за границы диапазона, то программа прерывается с выдачей сообщения об ошибке вида: Range Check Error.

20.3. Множества

Множество - это совокупность элементов одного и того же перечисляемого типа.

Оно задается перечислением элементов. Например, множество четных чисел от 0 до 10 в математике записывается так:

{ 0,2,4,6,8,10 }.

В Паскале оно представляется аналогично, только заключается в квадратные скобки:

[0,2,4,6,8,10]

В общем случае в разделе Var множество описывается следующим образом:

Var

Имя_множества : Set Of Тип_Компонент;

где Тип_Компонент — обязательно порядковый.

Пример.

Type

Days = (Sunday, Monday, Tuesday, Wednesday, Thursday,

Friday, Saturday);

Bukva = Set of ’a’..’z’;

Var

Sim : Bukva;

Chislo : Set of 1..20;

WeekEnd, Rabdny, ObDni : Set of Days;

При использовании последнего описания можно выполнять присваивания вида:

Weekend := [Saturday, Sunday];

Мощность множества — это максимальное количество элементов в нём. В Паскале оно ограничивается числом 256.

Множество может не содержать ни одного элемента. Оно называется пустым и обозначается следующим образом: [ ]. По определению пустое множество является компонентой любого множества.

Для множеств допустимы следующие операции:

1) сравнение:

а) на равенство двух множеств (совпадают множества или нет) ;

б) на вхождение одного множества в другое;

в) на принадлежность элемента множеству;

2) объединение;

3) пересечение;

4) вычитание.

1) Результат операций сравнения — булевский.

1, а) Операции сравнения на равенство выполняются, как и для других типов, например:

If ObDny = WeekEnd Then

Множества равны, если они содержат одни и те же константы.

1, б) Проверка на вхождение выполняется с помощью знаков:

<= или >=

Выражение S1 <= S2 проверяет, все ли элементы множества S1 входят в S2, а S1 >= S2, содержит ли S1 все элементы из S2.

Пример. [1,2,3] = [2,3,1] результат True

[’A’, ’C’] <= [’A’, ’B’, ’C’, ’D’] результат True

[ ] <= [’A’] результат True - пустое множество входит в любое другое.

1, в) Для определения принадлежности некоторого элемента множеству в Паскале используется операция In вида:

Элемент In Множество,

которая дает значение True, если элемент принадлежит множеству.

Пример. ’А’ In [’A’,’B’,’Г’,’Д’] результат True

’A’ In [’X’,’Y’,’Z’] результат False

S In [’A’..’Z’] результат True, если S - латинская буква.

Операция In может эффективно применяться для исключения сложных проверок. Например, вместо проверки

If (Ch=’A’) Or (Ch=’E’) Or (Ch=’I’) Or (Ch=’S’) Or (Ch=’X’) then

Оператор1;

можно записать более простую

If Ch In [’A’,’E’,’I’,’S’,’X’] then

Оператор1;

2) Объединением двух множеств является множество, составленное из элементов, входящих в оба исходных. Операция объединения обозначается знаком +.

Пример. [’A’,’B’,’C’] + [’D’,’E’] = [’A’,’B’,’C’,’D’,’E’]

[’A’,’B’] + [’A’,’E’] = [’A’,’B’,’E’]

3) Пересечением двух множеств является множество, состоящее из элементов, которые входят одновременно в оба исходных. Знак операции пересечения *.

Пример. [’A’,’B’,’C’] * [’A’,’C’] = [’A’,’C’]

[’A’,’B’] * [’X’,’Y’] = [ ]

[ ]*[ ] = [ ]

4) Разностью двух множеств является множество, состоящее из элементов первого, которые не входят во второе. Знак операции вычитания: .

Пример. [’A’,’B’,’C’] – [’A’,’C’] = [’B’]

[’A’,’B’] – [ ] = [’A’,’B’]

[’A’,’B’] – [’A’,’B’] = [ ].