Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica / lin.doc
Скачиваний:
79
Добавлен:
09.04.2015
Размер:
776.19 Кб
Скачать

Множественные типы

Понятие множества – одно из основных в математике.

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

Число элементов исходного множества не может быть более 256. Для задания элементов множества может использоваться любой поряд­ковый тип, однако порядковые номера элементов множества, т.е. значе­ния функции ord, должны находиться в пределах от 0 до 255.

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

<конструктор множества>::=[]|[<элемент>{,<элемент>}]

<элемент>::=<выражение>|<выражение1>..<выражение2>

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

Пример.

[] – пустое множество; [1..1] – множество [1];

['d'..'a'] – эквивалентно [];

[1,2,3,2..5,6,4,3,] – эквивалентно [1..6].

Неверные записи:

[2.7,3.14] – тип real не может быть базовым;

[5,'f'] – элементы разных типов; ['abc','deg'] – производный тип.

Синтаксис задания множественного типа

<задание множественного типа>::=set of<базовый тип>

<базовый тип>::=<имя базового типа>|<задание базового типа>

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

Пример.

Пусть задан тип M=setof1..3 , тогда множества

[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]

являются значениями заданного множественного типа.

Переменные множественного типа называют переменными-множествамии описывают в разделе описания переменных. Присвоить значения переменным-множествам можно оператором присваивания.

В Delphiимеется ряд встроенных операций для данных множест­венного типа (+,*,-и операции отношения).

Операции отношениянад множествамиAиB

A=BAиBсовпадают;

A<>BAиBне совпадают;

A<=B– все элементыAпринадлежатB;

A>=B– все элементыBпринадлежатA;

x inA– элемент x входит вA.

Пример.

Пусть заданы следующие типы и переменные:

Type Mn=set of 1..50;

Var A, B, C: Mn;

. . . . . . . . . . .

A:=[3,5,9,10];B:=[1,7,9,10];

Тогда можно выполнить следующие операции (в фигурных скобках ука­зан результат):

  • объединение:C:=A+B–{1,3,5,7,9,10};

  • пересечение: C:=A*B – {9,10};

  • разность: C:=A-B – {3,5}, C:=B-A – {1,7};

  • проверка эквивалентности:A=B– {False};

  • проверка неэквивалентности:A<>B– {True};

  • проверка, является ли одно множество подмножеством другого:A>=B– {False},A<=B– {False};

  • проверка, входит ли заданный элемент в заданное множество:in A– {True},3 in B– {False}.

Операции < и > – недопустимы над операндами множественного типа. С использованием множественных операций могут строиться мно­жественные выражения. Старшинство операций аналогично старшинству при вычислении арифметических выражений: в первую очередь выпол­няются операции в скобках, затем *, после чего+и-в порядке следования слева направо.

Пример.

[1,2,5,6,7]*[2..6] + [3,9] = [2,3,5,6,9]

В Delphiимеются две встроенные подпрограммы для работы с множествами:Exclude(A,x)– удалить из множестваAэлементx,Include(A,x)– вставить элементxво множествоA.

Соседние файлы в папке Informatica