Pascal. Множества

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 7 мес., 3 нед. назад.

  • Автор
    Сообщения
  • #3741

    Под множеством в Паскале понимается совокупность взаимосвязанных элементов одного типа. Его элементы должны быть порядкового типа данных и описываться перечислением и/или интервалом. Служебные слова Set Of говорят, что объявлен множественный тип:

    Type <имя типа> = Set Of <базовый тип>;

    Размер множества может меняться, но количество элементов в нем, как правило, не должно превышать 256. Поэтому если нужно определить множество, состоящее из чисел, то следует указывать значения входящие в тип byte (от 0 до 255).

    В Паскале для обозначения элементов множества используют квадратные скобки, в которых последние, как уже было сказано ранее, записываются интервалом и/или перечислением, например:

    [‘A’, ‘B’, ‘C’]
    [0, 1, 2, 5, 9]
    [1..9]
    [1, 2, 3, 10..20]

    Элементы множества в отличие от массивов не имеют индексов (номеров), и поэтому порядок не важен. Возьмем, к примеру, два множества: [2, 3, 5] и [3, 5, 2], не смотря на расположение элементов, они тождественны.

    С помощью конструктора множеств можно присвоить множественной переменной, какие-либо значения:

    I:=[1, 2, 3, 5, 8];
    C:=[‘b’, ‘d’, ‘f’];
    B: = [True, False];

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

    Объединение (+)

    Объединением множеств A и B является множество C, которое содержит общие или хотя бы одного из них элементы.

    Пример:

    [1, 2, 3, 4] + [3, 4, 5] = [1, 2, 3, 4, 5]
    [‘A’, ‘B’, ‘C’, ‘D’] + [‘B’, ‘E’, ‘G’] = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘G’]

    Пересечение (*)

    Пересечением множеств A и B является множество C, которое содержит элементы обоих множеств.

    Пример:

    [1, 2, 3, 4] * [3, 4, 5] = [3, 4]
    [‘A’, ‘B’, ‘C’, ‘D’] * [‘B’, ‘E’, ‘G’] = [‘B’]

    Разность (-)

    Разностью множеств A и B является множество C, которое содержит элементы множества A, не вошедшие в множество B.

    Пример:

    [1, 2, 3, 4] — [3, 4, 5] = [1, 2]
    [‘A’, ‘B’, ‘C’, ‘D’] — [‘B’, ‘E’, ‘G’] = [‘A’, ‘C’, ‘D’]

    Тождественность (=)

    Два множества считаются равными, если они состоят из одних и тех же элементов. Пример:

    [1, 2, 3, 4] = [2, 1, 4, 3] => True
    [‘A’, ‘B’, ‘C’, ‘D’] = [‘B’, ‘E’, ‘G’] => False

    Нетождественность (<>)

    Два множества считаются неравными, если они состоят из разных элементов.
    Пример:

    [1, 2, 3, 4] <> [2, 1, 4, 3] => False
    [‘A’, ‘B’, ‘C’, ‘D’] <> [‘B’, ‘E’, ‘G’] => True

    Содержит (>=)

    Выражение возвращает истину, если второе множество является подмножеством первого множества. Пример:

    [1, 2, 3, 4] >= [2, 1] => True
    [‘A’, ‘B’, ‘C’, ‘D’] >= [‘B’, ‘E’, ‘G’] => False

    Содержится (<=)

    Выражение возвращает истину, если первое множество является подмножеством второго множества. Пример:

    [

    1, 2, 3, 4] >= [2, 1] => False
    [‘A’, ‘B’] >= [‘B’, ‘A’, ‘G’] => True

    Операция IN

    Проверяет наличие определенного элемента в заданном множестве. Пример:

    1 In [1, 2, 3, 4] => True
    B In [‘A’, ‘G’] => False

    Для добавления множеству нового элемента в Паскаль есть операция Include:

    Include(<множество>, <элемент>)

    Для удаления из множества какого-либо элемента можно воспользоваться операцией Exclude:

    Exclude(<множество>, <элемент>)

    Необходимо помнить, что добавляемый/удаляемый элемент должен быть тождественного множеству типа.

Для ответа в этой теме необходимо авторизоваться.