Шаг 47.
Организация множеств

    На этом шаге мы познакомимся с новым типом данных - множество.

    В математике под множеством понимается некоторый набор элементов. Например, множество фигур на плоскости: круг, ромб, квадрат, прямоугольник.

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

    Множества, используемые в программе, могут быть описаны следующим образом:


Рис.1. Описание переменной типа "множество"

    Например,
Var
    A: Set Of Byte; {переменная типа множество, элементами которого являются целые числа из диапазона от 0 до 255}
    B: Set Of Char; {переменная типа множество, элементами которого являются символы}
    C: Set Of 1..20; {переменная типа множество, элементами которого являются целые числа от 1 до 20}


    Замечания.
1. Допускается задавать тип элементов, из которого состоит множество, с помощью диапазона (см. последнее объявление).
2. Количество элементов во множестве не должно превышать 256.
3. Если множество состоит из чисел, то:

    Какие значения может принимать переменная типа множество? Ответ на этот вопрос дает нам следующий пример. Пусть S - переменная типа множество, которая описана следующим образом:


   Var
     S: Set Of 1..5; 

    Значением переменной S может быть любое из следующих множеств:


    Замечания.
1. Элементы множества должны быть различны.
2. Порядок расположения элементов не важен.

    Элементы множества в программе задаются в квадратных скобках, через запятую. Например: [2, 3, 7], [Red, Yelloy]. Можно указывать диапазоны значений, например: два множества [1..3,4,5,6] и [1,2,3,4,5,6] эквивалентны.

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


   Type
      SetOfChar = Set Of Char;
      Digits = Set Of 1..100;
      ElemColor = (Green, Red, Yelloy);
      Color = Set Of ElemColor;
   Var
      MyColor: Color;
      MyCharts: SetOfChar;
      MyDig1, MyDig2: Digits;
   Begin
        . . .
        MyCharts:=['a'..'z','0'..'9','-'];
        MyDig1:=[ ];
        MyDig2:=MyDig1;
        MyDig1:=[x..x+10,0,y-1,y+1];
        . . .


    Перечислению основных операций над множествами посвящен следующий шаг.


Предыдущий шаг Содержание Следующий шаг