Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
выш.мат. методичка.DOC
Скачиваний:
32
Добавлен:
13.02.2015
Размер:
1.71 Mб
Скачать

6.5. Множество

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

Число элементов исходного множества в Turbo Pascal не может быть больше 256, а порядковые номера элементов (т. е. значение функции Оrd) должны на­ходиться в пределах от 0 до 255.

Для задания типа-множества следует использовать зарезервированные слова set и оf, а затем указать элементы этого множества, как, правило, в виде перечис­ления или диапазона, например:

tyре

Alfa = set of ‘А’,.. ‘Z’;

Сount = set of (Рlus, Мinus, Мult, Divid);

Теn = set of 0..9;

Number = set of '0'..'9';

Введя тип-множество, можно задать переменные или типизированные конста­нты этого типа-множества.

При задании значений константе-множеству ее элементы перечисляются через запятую (допустимо указывать диапазоны) и помещаются в квадратные скобки. Например, для введенных выше типов можно задать такие переменные и типи­зированные константы:

var

CharVal:Alfa;

Operation:Count;

const

Indeх: Теn = [0,2,4,6,8];

Digit: Number = [‘0’..’9’];

Примечание, Так же как и для других структурированных типов, тип-множества можно ввести непосредственно при задании переменных или типизированных констант:

var

CharVal: set of ‘А’,.. ‘Z’;

Operation: set of (Рlus, Мinus, Мult, Divid);

const

Indeх: set of 0..9 = [0,2,4,6,8];

Digit: set of ’0’..’9’= [‘0’..’9’];

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

Пример. Следующие структуры являются, конструкторами, множеств:

[Рlus, Minus]

[1..К mod 12,15]

[Сhr(0)..Сhr(31), ’А’, ’В’]

В каждое множество включается и т. н. пустое множество [ ], не содержащее никаких элементов.

Конструктор множества можно использовать и непосредственно в операциях надмножествами.

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

+ - объединение множеств;

- - разность множеств;

* - пересечение множеств;

= - проверка эквивалентности двух множеств;

<> - проверка неэквивалентности двух множеств;

<= - проверка, является ли левое множество подмножеством правого множества;

>= - проверка, является ли правое множество подмножеством левого множества;

in - проверка, входит ли элемент, указанный слева, в множество, указанное справа.

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

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

ргоgram ЕХАМРLE;

vаr

Str:string;

Тru: Воolean;

begin

Writeln(’Введите строку’);

ReadLn(Str);

L := Length(Str); {число введенных символов}

Тru := L > 0; {True, если не пустая строка}

While Tru and (L>0) do {проверка с конца строки}

begin

Тru:=Str[L] in [’0’ ..’9’, ’А’..’Z’, ’а’..’z’,’ ’]; {проверка допустимости символа}

Dес(L) {предыдущий символ}

end;

if Tru then

Writeln(’Правильная строка’)

else

WriteLn(’Неправильная строка’)

end.