Проверка принадлежности
Логическая операция проверки принадлежности элемента множеству записывается через оператор in.
Например, выражение
May in WarmSeason
имеет значение True.
Использование множеств и операции in позволяет, в частности, сделать эффективнее проверку правильности вводимых символов.
Например, для проверки допустимости введенного символа можно использовать следующее условие:
(Reply='y') or (Reply='Y') or (Reply='n') or (Reply='N')
Но если ввести множество
Const
AllowSymbol : set of char = ['Y', 'y', 'N', 'n'];
проверяемое условие можно записать в более компактной форме:
Reply in AllowSymbol
Примечание. Множественный тип данных не может быть использован для определения функции.
Рассмотрите пример.
Задача. Описать множество М(1..50). Сделать его пустым. Вводя целые числа с клавиатуры, заполнить множество 10 элементами.
В разделе описания переменных опишем множество целых чисел от 1 до 50, переменную Х целого типа будем использовать для считывания числа-кандидата в множество, целую переменную i используем для подсчета количества введенных чисел.
В начале программы применим операцию инициализации множества М:=[ ], так как оно не имеет элементов и является пустым.
Заполнение множества элементами произведем с использованием оператора цикла Repeat, параметр которого i будет указывать порядковый номер вводимого элемента. Операцию заполнения множества запишем оператором присваивания М:=M+[X]. Контроль заполнения множества запишем с использованием операции проверки принадлежности in. Если условие X in M выполняется, выведем сообщение о том, что число Х помещено в множество.
Текст программы описания и заполнения множества будет таким:
Program InputMno;
Var
M : set of 1..50;
X, i : integer;
Begin
M := [ ];
i :=1;
repeat
write('Введите ',i,'-й элемент множества');
readln(X);
if (X in M)
then
begin
write(Х, ' уже содержится в множестве');
i := i-1;
end
else
begin
write(Х, ' помещен в множество');
M := M+[X];
end;
i := i+1;
until i>10;
End.
Задание. Наберите рассмотренную программу, откомпилируйте ее. Проверьте работу программы, исполняя ее по шагам и наблюдая текущие значения переменных i, X, M в окне просмотра. Попробуйте задать значения числа большие 50, повторно задавать одинаковые значения Х и анализируйте значения множества М. Дополните программу выводом на экран содержимого полученного множества, сопровождая соответствующим сообщением. Откомпилируйте программу. Покажите учителю рабочую программу и ее листинг для оценки.
Задание. В своей тетради выполните упражнения, выбрав их с учителем из предложенных ниже:
1. Опишите множества М1(1, 2) и М2(2, 1). Сравните эти множества на равенство.
2. Опишите множества М1('a', 'b') и М2('b', 'a', 'c'). Сравните эти множества на неравенство.
3. Опишите множества М1('a', 'b', 'c') и М2('a', 'c'). Сравните эти множества по операции >=.
4. Опишите множества М1(1, 2, 3) и М2(1, 2, 3, 4). Сравните эти множества по операции <=.
5. Опишите множества М1(1, 2) и М2(5, 6). Получите результирующее множество М3=М1+М2. Определите, имеется ли в М3 элемент 7.
6. Опишите множества М1(1, 2, 3, 4) и М2(3, 4, 1). Получите результирующее множество М3=М1–М2. Определите, имеется ли в М3 элемент 2.
5. Опишите множества М1(1, 2, 3) и М2(1, 4, 2, 5). Получите результирующее множество М3=М1*М2. Определите, имеется ли в М3 элементы 1 и 2.
Дата добавления: 2015-05-16; просмотров: 1506;