ВУЗ:
Составители:
Рубрика:
71
<А<>В> — проверка неэквивалентности двух множеств; возвращает
TRUE, если оба множества неэквивалентны;
<А<=В> - проверка вхождения возвращает TRUE, если множество А
включено во множество В;
<А>=В> - проверка вхождения возвращает TRUE, если множество В
включено во множество А;
<i
IN A> - проверка принадлежности элемента I множеству А
возвращает TRUE, если элемент принадлежит множеству А.
Более наглядно результаты операций над множествами представлены
на ЛОС № 2, множества изображены в виде кругов, результат операции
заштрихован.
Пример:
var S:set of byte; k:byte;
begin
S:=[1..6]; k:=3;
if k in S then
writeln(′TRUE′); {будет напечатано TRUE}
k:=8; if k in S then
writeln(′входит′)
else writeln(′не входит′); {будет напечатано - не входит}
end.
Дополнительно к этим операциям можно использовать две процедуры,
INCLUDE - включает новый элемент во множество. Обращение к
процедуре:
INCLUDE (S,I);
Здесь S - множество, состоящее из элементов базового типа:
I - элемент базового типа, который необходимо включить во
множество
.
EXCLUDE - исключает элемент из множества. Обращение:
EXCLUDE (S,l);
Параметры обращения - такие же, как у процедуры INCLUDE.
В отличие от операции + и - , реализующих аналогичные действия над
двумя множествами, процедуры INCLUDE и EXCLUDE оптимизированы для
72
работы с одиночными элементами множества и поэтому отличаются высокой
скоростью выполнения.
Достоинства множеств очевидны: удобство анализа, гибкость
представления наборов значений, правда,
ограниченных типов и размеров.
Значения типа множества очень компактно кодируются. Множества хорошо
работают там, где нужно проводить анализ однотипных выборок значений
или накапливания поступающих значений.
К недостаткам множеств можно отнести следующие:
1. Ввод множеств возможен только по элементам.
Например:
var s:set of char; c:char;
begin
s:=[ ]; readln(c);
while c<>′.′ do
begin
s:=s+[c]; readln(c);
end;
s:=s-[′?′]; {можно выбросить элемент}
…….end.
2. Нет операции выборки элементов из массива и печати их значений.
Поэтому приходиться организовывать цикл по всему диапазону значений
базового типа, проверяя на каждой итерации принадлежность очередного
значения данному множеству, например:
var symvol:set of char; s:char;
begin
symvol:=[′А′..′У′,′*′,′0′..′5′];
for s:=chr(0) to chr(255) do
if s in symvol then writeln(s);
end.
В примере № 19, иллюстрирующем приемы работы с
множествами,
реализуется алгоритм выделения из первой сотни натуральных чисел всех
простых чисел.
<А<>В> проверка неэквивалентности двух множеств; возвращает работы с одиночными элементами множества и поэтому отличаются высокой TRUE, если оба множества неэквивалентны; скоростью выполнения. Достоинства множеств очевидны: удобство анализа, гибкость <А<=В> - проверка вхождения возвращает TRUE, если множество А представления наборов значений, правда, ограниченных типов и размеров. включено во множество В; Значения типа множества очень компактно кодируются. Множества хорошо <А>=В> - проверка вхождения возвращает TRUE, если множество В работают там, где нужно проводить анализ однотипных выборок значений включено во множество А; или накапливания поступающих значений. - проверка принадлежности элемента I множеству А К недостаткам множеств можно отнести следующие: возвращает TRUE, если элемент принадлежит множеству А. 1. Ввод множеств возможен только по элементам. Например: Более наглядно результаты операций над множествами представлены var s:set of char; c:char; на ЛОС № 2, множества изображены в виде кругов, результат операции begin заштрихован. s:=[ ]; readln(c); while c<>′.′ do Пример: begin var S:set of byte; k:byte; s:=s+[c]; readln(c); begin end; S:=[1..6]; k:=3; s:=s-[′?′]; {можно выбросить элемент} if k in S then .end. writeln(′TRUE′); {будет напечатано TRUE} 2. Нет операции выборки элементов из массива и печати их значений. k:=8; if k in S then Поэтому приходиться организовывать цикл по всему диапазону значений writeln(′входит′) базового типа, проверяя на каждой итерации принадлежность очередного else writeln(′не входит′); {будет напечатано - не входит} значения данному множеству, например: end. var symvol:set of char; s:char; Дополнительно к этим операциям можно использовать две процедуры, begin INCLUDE - включает новый элемент во множество. Обращение к symvol:=[′А′..′У′,′*′,′0′..′5′]; процедуре: for s:=chr(0) to chr(255) do INCLUDE (S,I); if s in symvol then writeln(s); Здесь S - множество, состоящее из элементов базового типа: end. I - элемент базового типа, который необходимо включить во В примере № 19, иллюстрирующем приемы работы с множествами, множество. реализуется алгоритм выделения из первой сотни натуральных чисел всех EXCLUDE - исключает элемент из множества. Обращение: простых чисел. EXCLUDE (S,l); Параметры обращения - такие же, как у процедуры INCLUDE. В отличие от операции + и - , реализующих аналогичные действия над двумя множествами, процедуры INCLUDE и EXCLUDE оптимизированы для 71 72
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »