Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л9_2012 строки и множ_а.doc
Скачиваний:
1
Добавлен:
24.11.2019
Размер:
79.36 Кб
Скачать

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

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

Объединение двух множеств А и В, записываемое как А+В, есть новое множество, состоящее из элементов, принадлежащих множеству А или В, или тому и другому одновременно.

Пример:

Type Ch = set of char;

Var Ch1, Ch2, Ch3:Ch;

...

Ch1:=['a','x','e'];

Ch2:=['o','x'];

Ch3:=Ch1+Ch2;

В результате объединения Ch3 будет содержать 4 элемента ['a','x','e','o'].

Пересечение двух множеств А и В, записываемое как А*В, есть новое множество, состоящее из элементов, принадлежащих как А, так и В.

Ch3:=Ch1*Ch2;

Ch2:=Ch1*['n','o'];

В результате пересечения Ch3 будет содержать только один элемент [x]. В следующем предложении утверждается, что множество Ch2 должно быть образовано из элементов 'n' и 'o' при условии, что они есть во множестве Ch1. Если же ни того, ни другого там нет, множество Ch2 будет пустым.

Разность двух множеств А и В, записываемая как А-В, есть новое множество, состоящее только из тех элементов А, которые отсутствуют в В.

Пример:

Сh1:=['a','e','t'];

Ch2:=Ch1-['e']; {'a','t'}

Ch3:=['s','e','t']-Ch1; {'s'}

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

Необходимо отметить, что символы +, *, -, используемые для обозначения основных множественных операций, имеют совсем иные значения, будучи употреблены с числовыми величинами, а знак +, кроме того, выступает еще и как оператор конкатенации строк.

Манипулируя множественными операциями, очень легко добавлять элементы к множеству или, наоборот, удалять их из него.

Ch1:=Ch1+['k'];

Ch2:=Ch2-['m'];

Если 'k' уже был в Ch1 или 'm' не было в Ch2, то ничего не изменится.

Сравнение множеств в Паскале осуществляется при помощи различных операторов отношений.

Два множества А и В равны, если каждый элемент из А является также элементом В и наоборот. (А=В)

Множество А есть подмножество множества В, если каждый элемент А присутствует и в В. (А<=В)

Кроме того, имеется возможность выяснить, принадлежит ли данный элемент некоторому множеству. Для этой цели предусмотрен специальный оператор in. (x in A)

Результат выполнения операций сравнения, подмножества и принадлежности имеет булевский тип (True или False).

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

Процедура Include включает новый элемент во множество: Include(s,i).

Здесь s – множество, состоящее из элементов базового типа; i – элемент того же типа, который необходимо включить во множество.

Процедура Exclude исключает элемент из множества: Exclude(s,i).

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

  1. Составление программ с структурированными данными.

Пример 1 Составить программу, которая в заданной строке подсчитывает количество заданного символа.

program pr1;

var ch:char; st:string; i,k:byte;

begin clrscr;

write('введите строку st= '); readln(st);

write('введите символ, который надо подсчитать ch= '); readln(ch);

k:=0;

for i:=1 to length(st) do

if st[i]=ch then k:=k+1;

writeln('в данной строке символов "',ch,'" : ',k);

readln

end.

Пример 2 Составить программу, которая в заданной строке подсчитывает количество гласных букв.

program pr2;

const n=10;

var st: string;

mn: set of char;

i,k:integer;

begin

writeln('ВВедите строку');

readln(st);

mn:=['а','е','у','о','и','я','ю','ы','э','й'];

for i:= 1 to length(st) do

if st[i] in mn then k:=k+1 ;

writeln('количество гласных букв =', k:3);

readln

end.

OLE (англ. Object Linking and Embedding (Объектное Соединение и Вложение), произносится как oh-lay [олэй]) — технология связывания и внедрения объектов в другие документы и объекты, разработанные корпорацией Майкрософт.

OLE позволяет передавать часть работы от одной программы редактирования к другой и возвращать результаты назад. Например, установленная на персональном компьютере издательская система может послать некий текст на обработку в текстовый редактор, либо некоторое изображение в редактор изображений с помощью OLE-технологии.

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

OLE используется при обработке составных документов (англ. compound documents), может быть использована при передаче данных между различными несвязанными между собой системами посредством интерфейса переноса (англ. drag-and-drop), а также при выполнении операций с буфером обмена. Идея внедрения широко используется при работе с мультимедийным содержанием на веб-страницах (пример — Веб-ТВ), где используется передача изображения, звука, видео, анимации в страницах HTML (язык гипертекстовой разметки) либо в других файлах, также использующих текстовую разметку (например, XML и SGML). Однако, технология OLE использует архитектуру «толстого клиента», то есть сетевой ПК с избыточными вычислительными ресурсами. Это означает, что тип файла либо программа, которую пытаются внедрить, должна присутствовать на машине клиента. Например, если OLE оперирует таблицами Microsoft Excel, то программа Excel должна быть инсталлирована на машине пользователя.

8

Л 9_(1 курс)_2012 Прог_ие