C.10.7. Лекция 7 (2 часа) Множества

Множество- неупорядоченная совокупность неповторяющихся элементов одного типа, имеющих общее имя. Количество элементов множества может меняться в пределах от 1 до 255. Описание типа множество имеет вид:

<имя типа > = Set Of <базовый тип >;

Здесь <базовый тип> - это тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Integer. (В Турбо-Паскале также кроме типов Word, Shortint, Longint).
Для задания множества используется конструктор множества, заключенный в квадратные скобки список элементов множества, отделяемых друг от друга запятыми. Элементами могут быть константы или выражения базового типа, а также - тип-диапазон того же базового типа. Конструктор пустого множества имеет вид - [ ].

Пример 11.
Пример определения и задания множеств:

Type
digitChar = Set Of ‘0’ .. ‘9’;
digit = Set Of 0 .. 9;
Var
s1, s2, s3 : digitChar;
s4, s5, s6 : digit;
. . . . . .
s1 := [‘1’, ‘2’, ‘3’];
s2 := [‘3’, ‘2’, ‘1’];
s3 := [‘2’, ‘3’];
s4 := [0. .3, 6];
s5 := [4, 5];
s6 := [3. .9];. . . . . .

Над множествами определены следующие операции:

Операция Смысл Пример* Результат
* пересечение множеств s1*s3 [‘2’, ‘3’]
+ объединение множеств s4+s5 [0. .6]
- разность множеств s2-s3 [‘1’]
= True, если множества эквивалентны s1=s2 s1=s3 True False
<> True, если множества неэквивалентны s1<>s2 s1<>s3 False True
<= True, если первое множество содержится во втором s5<=s6 True
>= True, если второе множество содержится в первом s2>=s3 True
In проверка принадлежности значения выражения, стоящего слева множеству, стоящему справа 7-5 In s4 True

* - примеры приведены согласно описаниям и конструкторам множеств в примере 11.

Пример 12.
Организовать ввод элементов трех множеств A, B, C. Вычислить и напечатать множества A + B, B * C, C - A.

Program CalcSet;
Type SetChar: Set Of Char;
Var A, B, C : SetChar;
{Процедура ввода множества}
Procedure EnterSet(Var D: SetChar);
Var ch: Char;
Begin
Writeln(‘Введите элементы множества, точка - конец ввода’);
Read(ch);
D:=[];
While ch<>‘.’ Do
Begin D := D + [ch]; Read(ch) End;
End;{EnterSet}
{Процедура вывода множества}
Procedure PrintSet(D: SetChar);
Var i: Byte;
Begin For i := 0 To 255 Do
If Chr(i) in D Then Writeln(Chr(i))
End;{PrintSet}
Begin {Основная программа}
Writeln(‘Введите элементы множества A’);
EnterSet(A);
Writeln(‘Введите элементы множества B’);
EnterSet(B);
Writeln(‘Введите элементы множества C’);
EnterSet(C);
PrintSet(A+B); PrintSet(B*C); PrintSet(C-A)
End.

 








Дата добавления: 2014-12-24; просмотров: 2174;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.