Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pril1.doc
Скачиваний:
26
Добавлен:
31.05.2015
Размер:
604.67 Кб
Скачать

Множества

Наряду с численными типами множества являются фундаментальным понятием в математике (конечные, бесконечные, состоящие из разных (произвольных) элементов). В Pascalрассматриваются только конечные множества, состоящие из небольшого числа элементов имеющие один и тот же тип.

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

Базовый тип– это совокупность значений из которых могут быть образованы множества. Всего может быть не более 256 различных элементов. (Идет то же самое расширение, что и по строке.)

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

Постоянные множества и в Pascalи в математике задаются путем их перечисления.

Математика

Pascal

0

[]

{1, 2, 3}

[1, 2, 3]

{A,B,C,D}

['A', 'B', 'C', 'D']

{1, 2, …, N}

[1..N]

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

Множества в Pascalописываются:

TYPE имя типа = SET OF базовый тип;

VARимя переменной: имя типа;

или

VARимя переменной:SETOFбазовый тип;

или

CONSTимя переменной = [элементы множества];

Пример:

VAR A: SET OF INTEGER;

B: SET OF 'A'..'Z';

C: SET OF CHAR;

В отличие от массивов к элементам множества нет прямого доступа, поэтому ввод и вывод элементов множества осуществляется:

  1. Ввод с помощью операции сложения (объединения)

  2. Вывод с помощью проверки принадлежности IF.

Формирование множеств

Если элементы множества идут подряд друг за другом, то можно использовать диапазон. Например, множество описанное: VARA:SETOF1..5; может принимать значения:

A = [];

A[1], [2], [3], [4], [5]

A[1, 2], [1, 3], [1, 4], [1, 5]…

A[1, 2, 3]…

A[1, 2, 3, 4]…

A[1, 2, 3, 4, 5]

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

Отношения рассматриваются, как операции, вырабатывающие логическое выражение.

Математика

Pascal

В Pascalопределены три операции над множествами:

1. Операция объединения.

Математика:

Pascal:

Объединением двух множеств называется множество элементов принадлежащих обоим множествам.

Пример:

['A', 'B'] + ['C', 'D'] = ['A', 'B', 'C', 'D']

2. Пересечение

Математика:

Pascal:

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

Пример:

['A', 'B']*['C', 'D'] = [];

3. Математика:

Pascal:

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

Пример: 'A', 'B'] – ['C', 'D'] = ['A', 'B'];

Над элементами множества определены операции сравнения (=, ,). Над элементами допустим оператор присваивания.

Пример:

VAR A,B: SET OF 1..10;

BEGIN

A:=[1, 5, 7];

B:=A;

Оператор B:=A означает, что переменной B-типа множество присваивается текущее значение множества А и вместо А может использоваться выражение типа множество.

Ввод элементов во множество:

A:=[];

READ (C); {C базовому типу}

WHILE C<>0 DO

BEGIN

A:=A+C;

READ (C); END;

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

PROGRAM MNO;

var m: set of char;

str: string;

c: char;

i,n: integer;

begin

m:=[ ]; n:=0;

readln (str);

for i:=1 to length (str) do

m:=m+str[ i ];

for c:='a' to 'я' do

if c in m then n:=n+1;

writeln (n);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]