..

Сайт города Попасная.
 

 

Программирование

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



 

 

 

 

4.4. Множества

Множество представляет собой набор элементов порядкового типа, для которых определена операция проверки принадлежности элемента множеству. Строка в разделе описаний, содержащая зарезервированные слова Set и Of, вида Var Mn:Set Of идентификатор_типа_элемента_множества;
объявляет переменную Мn множеством и определяет тип элементов множества. Поскольку число элементов множества не может превышать 256, в качестве идентификатора типа элементов множества можно использовать только Byte, Shortlnt, Boolean и Char, а также тип-диапазон и перечисляемый тип. Например, множество заглавных букв латинского алфавита можно определить как Var GrLettr: Set of 'A'..'Z';
а множество наименований цвета: red, green, blue - как: Var Color: Set of (red, green, blue); Состав множества определяется с помощью конструктора. Конструктор выполняет действие, создавая множество из перечисленных в нем элементов, заключенных в квадратные скобки. Например, множество четных чисел, расположенных в диапазоне от 10 до 19, определяется как [10,12,14,16,18]. С помощью конструктора для переменной типа множество можно задать начальное значение в разделе описаний, объявив ее как типизированную константу: Const EvenNub: Set of Byte = [10, 12, 14, 16, 18];
В перечень элементов множества можно включать тип-диапазон и выражения, например:
Var Mn:Set of Byte; k:Byte;
...
Begin k:=2; Mn: = [l,2,5,10. .20, k*15 ];
...

Проверка принадлежности элемента множеству выполняется с помощью операции in, которая возвращает значение True, если элемент принадлежит множеству, и False в противном случае. Например, проверить принадлежность слова bright к множеству Color можно следующим образом:
If bright in Color Then Writeln('Это название цвета’); Там, где это возможно, операцию In лучше применять вместо Проверки значений на точное равенство, поскольку она выполняется быстрее, чем сравнение. Составим программу, определяющую полученную оценку по номерам решенных задач при следующих условиях: требуется решить 3 задачи из предложенных семи. Одну задачу из первых трех предложенных (1, 2 и 3) надо решить обязательно. Ее правильное решение дает оценку 3. Дополнительно решенная задача 4 или 5 дает оценку 4. Для того чтобы получить оценку 5, необходимо решить еще задачу 6 или 7.

Программа 4.5.

Type Mn=Set of Byte;
Var
Ball3,Ball4,Ball5:Mn;
First,Second,Third:Byte;
bЗ,b4,b5:Boolean;
Begin
Ball3:=[l,2,3];
Ball4:=[4,5];
Ball5:-[6,7];
Writeln('Numbers-?’);
Readln(First,Second,Third);
b3:=(First in Ball3) Or (Second in Ball3) or (Third in Ball3);
b4:=(First in Ball4) Or (Second in Ball4) or (Third in Ball4);
b5:=(First in Ball5) Or (Second in Ball5) or (Third in Ball5);
If b3 and b4 and b5 Then Writelnl'5') Else
If b3 and b4 Then
Writeln('4') Else
If b3 Then
Writeln('3') Else
Writeln('2');
Readln;
End.

Процедура Readln без параметров приостанавливает завершение программы до нажатия клавиши Enter, что позволяет увидеть на экране выведенные результаты до возврата в редактор TurboPascal. Для множеств определены операции объединения, пересечения и разности. Объединением двух множеств называется множество, содержащее все элементы этих множеств, пересечение двух множеств содержит только их общие элементы, а разность множеств А и В содержит элементы множества А, не входящие в состав множества В. Примеры применения операций даны в таблице 4.1.

Таблица 4.1. Примеры операций с множествами

Название операции
Знак операции
Пример
Состав множества А
Состав множества B
Состав множества С
объединение
+
С:=A+B;
[1,3,5,6]
[1,2,3,4]
[1,2,3,4,5,6]
пересечение
*
C:=A*B;
[1,3,5,6]
[1,2,3,4]
[1,3]
разность
-
C:=A-B;
[1,3,5,6]
[1,2,3,4]
[5,6]

Для сравнения двух множеств используются следующие операции:
= - проверка эквивалентности двух множеств (все следующие множества являются эквивалентными: [1,4,3]; [1,3,4] и [4,1,3]);
<> - проверка неэквивалентности двух множеств (следующие множества неэквивалентны [3,4,1]; [3,2,4,1]);
<= - проверка, является ля левое множество подмножеством правого множества; (множество [1,2,3] является подмножеством множества [1,2,3,4]);
>= - проверка, является ли правое множество подмножеством левого множества.

Пустое множество, определяемое как [ ], является подмножеством любого множества.

 

Вернуться к оглавлению

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved