Алгоритмические языки и программирование. Игошина Л.В. - 52 стр.

UptoLike

Составители: 

4) = - проверка эквивалентности (или равенства): возвращает TRUE, если оба
множества эквивалентны, т.е. содержат все одинаковые элементы.
5) <> - проверка неэквивалентности (или неравенства): возвращает TRUE,
если оба множества неэквивалентны, т.е. содержат неодинаковые
элементы.
6) <= - проверка вхождения: возвращает TRUE, если первое множество
включено во второе (т.е. все элементы первого множества присутствуют
также и во втором).
7) >= - проверка вхождения: возвращает TRUE, если второе множество
включено в первое.
8) IN - проверка принадлежности элемента множеству. Эта операция
возвращает результат TRUE, если элемент (или выражение), стоящий
слева принадлежит множеству, указанному справа.
Дополнительно к этим операциям можно использовать две процедуры:
Include - включает новый элемент во множество: Include(M,elem);
где
М - множество элементов некоторого базового типа, а elem - элемент
того же типа, который необходимо включить в множество М.
Exclude - исключает элемент из множества: Exclude(M,elem).
В отличие от операций "+" и "-", реализующих аналогичные действия над
двумя множествами, эти процедуры оптимизированы для работы с
одиночными элементами множества и поэтому отличаются высокой
скоростью выполнения.
Основным достоинством использования
множеств является экономия
памяти: внутреннее устройство множества таково, что каждому его элементу
ставится в соответствие один двоичный разряд (один бит). Если элемент
включен во множество, то соотвествующий разряд имеет значение 1, в
противном случае - 0. Минимальной единицей памяти является 1 байт (8 бит),
поэтому для хранения множества мощностью 256 элементов выделяется
память 32 смежных байта.
Рассмотрим работу
с множествами на следующем примере.
Из множества целых чисел от 1 до 20 выделить:
1) множество чисел, делящихся на 2 и 3 одновременно;
2) множество чисел, делящихся на 2 или на 3.
Первая задача соответствует нахождению пересечения множеств чисел,
одно из которых содержит числа, делящиеся на 2, а другое на 3. Вторая -
объединению этих двух множеств.
Обозначим множество
чисел, делящихся на 2 через М2; множество чисел,
делящихся на 3 через М3; множество чисел, делящихся на 2 и 3 через М2and3;
множество чисел, делящихся на 2 или 3 через М2or3.
Текст программы
Type TM=Set of 1..20; {Описание типа множества целых чисел от 1 до 20}
Var M2,M3,M2and3,M2or3:TM; {Описание множеств}
k:1..20; {Описание переменной}
4) = - проверка эквивалентности (или равенства): возвращает TRUE, если оба
   множества эквивалентны, т.е. содержат все одинаковые элементы.
5) <> - проверка неэквивалентности (или неравенства): возвращает TRUE,
   если оба множества неэквивалентны, т.е. содержат неодинаковые
   элементы.
6) <= - проверка вхождения: возвращает TRUE, если первое множество
   включено во второе (т.е. все элементы первого множества присутствуют
   также и во втором).
7) >= - проверка вхождения: возвращает TRUE, если второе множество
   включено в первое.
8) IN - проверка принадлежности элемента множеству. Эта операция
   возвращает результат TRUE, если элемент (или выражение), стоящий
   слева принадлежит множеству, указанному справа.
   Дополнительно к этим операциям можно использовать две процедуры:
   Include - включает новый элемент во множество: Include(M,elem);
   где М - множество элементов некоторого базового типа, а elem - элемент
того же типа, который необходимо включить в множество М.
   Exclude - исключает элемент из множества: Exclude(M,elem).
   В отличие от операций "+" и "-", реализующих аналогичные действия над
двумя множествами, эти процедуры оптимизированы для работы с
одиночными элементами множества и поэтому отличаются высокой
скоростью выполнения.
   Основным достоинством использования множеств является экономия
памяти: внутреннее устройство множества таково, что каждому его элементу
ставится в соответствие один двоичный разряд (один бит). Если элемент
включен во множество, то соотвествующий разряд имеет значение 1, в
противном случае - 0. Минимальной единицей памяти является 1 байт (8 бит),
поэтому для хранения множества мощностью 256 элементов выделяется
память 32 смежных байта.
   Рассмотрим работу с множествами на следующем примере.
   Из множества целых чисел от 1 до 20 выделить:
   1) множество чисел, делящихся на 2 и 3 одновременно;
   2) множество чисел, делящихся на 2 или на 3.
   Первая задача соответствует нахождению пересечения множеств чисел,
одно из которых содержит числа, делящиеся на 2, а другое на 3. Вторая -
объединению этих двух множеств.
   Обозначим множество чисел, делящихся на 2 через М2; множество чисел,
делящихся на 3 через М3; множество чисел, делящихся на 2 и 3 через М2and3;
множество чисел, делящихся на 2 или 3 через М2or3.
            Текст программы
Type TM=Set of 1..20; {Описание типа множества целых чисел от 1 до 20}
Var M2,M3,M2and3,M2or3:TM; {Описание множеств}
  k:1..20; {Описание переменной}