Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Операции над множествами

Листинг 9.1. Вывод строки в перевернутом виде и по отдельным словам | Операции над строками | Процедуры преобразования типов | И замена фрагментов текста | Преобразование строчных букв в заглавные | Определение и правила записи |


Читайте также:
  1. Аддитивная и мультипликативная операции коммутативны
  2. Активные операции коммерческого банка
  3. Атомарные операции
  4. Банковские операции.
  5. В дальнейшем изложении мы будем предполагать применение операции переименования во всех конфликтных случаях.
  6. Вложенные операторы If. Логические операции и выражения
  7. Вложенные операторы if. Сложное условие в операторе if. Логические операции

При работе с множествами допускается использование следующих операций:

П отношения (=, <>, >=, <=);

О объединения множеств (+);

О пересечения множеств (*);

П разности множеств (—);

G проверка принадлежности элемента множеству (in).

Рассмотрим каждую из операций в отдельности.

П Операция "равно" (=). Два множества А л Л считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет (табл. 10.1).

Таблица 10.1. Примеры операции "равно"

"\ Операция "не равно" (<>). Два множества А и В считаются не равными, если они отличаются по количеству элементов или по значению хотя бы одного элемента (табл. 10.2).

Таблица 10.2. Примеры операции "не равно"

П Операция "больше или равно" (>=). Эта операция используется для опреде­ления принадлежности одного множества другому. Результат операции А>~В равен true, если все элементы множества В содержатся в множест­ве А. В противном случае результат равен false (табл. 10.3).


3 Операция "меньше или равно" (<=). Операция используется аналогично предыдущей операции, но результат выражения А<=В равен true, если все элементы множества А содержатся в множестве В. В противном слу­чае результат равен false (табл. 10.4).

" V

Таблица 10.4. Примеры операции "меньше или равно"

О Операция in. Эта операция используется для проверки принадлежности какого-либо значения указанному множеству. Она обычно применяется в условных операторах (табл. 10.5).

Таблица 10.5. Примеры операции in

Операция in позволяет эффективно и наглядно производить сложные проверки условий, заменяя иногда десятки других операций. Например,

СЛОЖНОе условие if (a=l) or (а=2) or (a=3) or (a=4) or (a=5) then...

можно заменить более коротким выражением if a in [1.. 5] then...

Часто операцию in пытаются записать с отрицанием: х not in m. Такая запись является ошибочной, правильная инструкция имеет вид: not(x in m)


П Объединение множеств (+). Объединением двух множеств является третье множество, содержащее элементы обоих множеств (табл. 10.6).

Таблица 10.6. Примеры операции объединения множеств

П Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы,* входящие одновременно в оба множества (табл. 10.7).

Таблица 10.7. Примеры операции пересечения множеств

П Разность множеств (—). Разностью двух множеств является третье мно­жество, которое содержит элементы первого множества, не входящие во второе множество (табл. Ю.8).

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

Листинг 10.1 содержит небольшую программу, демонстрирующую операции над множествами. Множества чисел заполнены следующим образом: D1 -четными числами 2, 4, 6, 8; множество D2 — числами О, 1, 2, 3, 5; множест­во D3 — нечетными числами 1, 3, 5, 7, 9. После этого над множествами вы­полнены операции объединения, разности, пересечения.


; Листинг 10.1, Операции над множествами

type digits=set of 0.. 9;

var dl,d2,d3,d: digits;

begin

dl:=[2,4,6,8]; (заполнение множеств }

d2:=[0.. 3,5];

d3:-[l,3,5,7,9J;

d:=dl+d2; { объединение множеств dl и d2)

d:=d+d3; { объединение множеств d и d3 }

d:=d~d2; { разность множеств d и d2)

d:=d*dl; { пересечение множеств d и dl }

end.

!

Так как в Turbo Pascal отсутствуют средства ввода/вывода элементов множе­ства, то действие программы можно проверить, исполняя ее по шагам и на­блюдая текущие значения переменных dl, 62, d3, d в окне просмотра (см. приложение 1).

Тем не менее, нетрудно написать процедуру для вывода элементов множе­ства. Например, процедура для вывода множества символов может иметь следующий вид:

type charset=set of char; procedure writeset(a:charset); var с:char; begin

for c:=chr(0) to chr(255) do

if с in a then write(c,' '); writeln; end;

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

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

\ Л истин); 10.2. Подсчет количества гласных букв в предложении

const

glasn=[ 'а', 'е', 'и', 'о1, 'у'/ 'ьг', тэ', 'ю1, 'я',

•и' ' F ' ' И ' ' Г)' ' V ' ' W' ' Ч ' ' HV ' Я' 1 •

г\, И, г VI f w, J I Е* t -Э г № r /1J/


var s:string; p,i:integer; begin

write('Введите строку текста: '); readln(s);

p:=0;

for i:=l to length(s) do

if s[i] in glasn then p:=p+l;

writelnf'B строке ',р, ' гласных букв'); readln; end.

Комментарии j

В программе используется константа glasn, представляющая множество глас­ных букв. Проверка принадлежности символов предложения множеству глас­ных букв записывается операцией in. Разумеется, для решения этой задачи можно было бы записать вспомогательную строку из гласных букв и использо­вать функцию роз для поиска буквы в этой строке. Однако вариант с множест­вом предпочтительней, т. к. текст получился нагляднее, кроме того, проверка на принадлежность множеству выполняется намного быстрей, чем поиск символа в строке.

Формирование


Дата добавления: 2015-11-14; просмотров: 61 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Понятие множества| Случайных неповторяющихся чисел

mybiblioteka.su - 2015-2024 год. (0.008 сек.)