
- •Множество (Структурированный тип данных)
- •Эквивалентные множества - все их элементы одинаковы (S2 и S1).
- •Пример: Ввести два множества по пять цифр. Найти множество разности R, напечатать его
- •Разработать программу c заданным индивидуальным кодом (табл.
- •Таблица 1
- •Операции (третья цифра)
- •Множество для проверки принадлежности ему заданных элементов (буква)

Множество (Структурированный тип данных)
- наборы однотипных логически связанных друг с другом данных.
Количество элементов от 0 до 255. Описание типа производится в разделе
TYPE <имяТипа> = SET of <базовыйТип>; множество из
или
VAR <имяПерем>: SET of <базовыйТип>;
<базовыйТип> - любой порядковый тип, из целых – только ВУТЕ (нельзя WORD, Integer, LogInt, ShortInt).
Пример:
TYPE dchar = SET of '1'..'9'; {базовый – символьный тип- диапазон} |
||
digit=SET of 0..9; {базовый – поддиапазон типа BYTE} |
||
VAR S1,S2,S3: dchar; |
{символы} |
|
S4,S5,S6,S7: digit; |
{цифры} |
[ ] |
конструктор множества |
||
Пример: S1:=['1','2','3']; |
S4:=[0..3,7]; |
|
S2:=['2','1','3']; |
S5:=[4,6]; |
|
S3:=['1','2'];S6:=[3..8]; S7:=[]; |
{пустое} |
1

Эквивалентные множества - все их элементы одинаковы (S2 и S1).
Операции над множествами:
1. |
* пересечение множеств содержит элементы, общие для обоих |
|||
|
множеств. (S4*S6 содержит [3,7]; |
S4*S5 образует пустое мн.). |
||
2. |
+ объединение множеств содержит элементы первого множества, |
|||
|
дополненные недостающими элементами второго. |
|||
|
S4+S5 содержит [0,1,2,3,4,6,7] S5+S6 содержит [3,4,5,6,7,8] |
|||
3. |
- разность множеств содержит элементы из первого множества, |
|||
|
которые не принадлежат второму. |
|
|
|
|
S6 - S5 содержит [3,5,7,8]) |
|
||
S4 - S5 содержит [0,1,2,3,7]) |
[ ]-S4 даст [ ]. |
|
||
4. |
Операции отношений: |
|
|
|
= операция эквивалентности |
|
|
||
|
значение TRUE (S1= S2; |
['1','2','3'] = ['2','3','1']) |
||
<> -неэквивалентности |
(TRUE для [1,2] <> [1] |
S3<>S2) |
||
<= проверка вхождения |
(Пример. [1]<=[1,2]; ) |
|
||
>= проверка вхождения |
|
|
|
in - операция проверки принадлежности
Бинарная операция: <выражение> in <множество>;
2

|
|
Примеры |
|
Пример: 3 in S6 |
-TRUE; |
[] in [0..5] |
[] in S5 |
2*2 in S4 |
- |
FALSE; |
|
компактное машинное представление Недостаток: невозможность вывода множества на экран
Пример: Включить элементы во множество из входного потока до точки.
VAR
S:SET of char;{переменная-множество}
|
C:char; |
элемент множества |
|
Begin |
|
|
|
|
S:=[ ]; { S := #0;} обнуление значений |
||
{ |
REPEAT |
{цикл до ввода ".“} |
} |
|
while C <> '.' do |
|
|
|
|
begin |
|
|
|
read(C); |
{чтение символа в с} |
|
|
S:=S+[C]; |
{добавление его к S} |
|
|
end; |
|
{ |
Until C = '.' |
} |
|
|
S:=S - ['.'];{исключение точки} |
|
End. |
3 |
|

Пример: Ввести два множества по пять цифр. Найти множество разности R, напечатать его элементы. Есть ли в R двоичные цифры
Program Mnog13; |
|
Type |
MN=set of 0..9; {множество цифр} |
Var |
S1, S2, R: MN; |
|
i, x, y: byte; |
BEGIN
s1:=[ ]; s2:=[ ];
writeln('Введи 2 множества по 5 чисел по 2 числа в строке'); for i:=1 to 5 do
|
begin |
|
read(x, y); |
|
s1 := s1 + [x]; |
|
s2 := s2 + [y]; |
|
end; |
R:= s1-s2; |
{Разность} |
if R<=s1 then writeln('Разность входит в S1');
if NOT(R<=s2) then writeln('Разность не входит в S2'); for i:=0 to 9 do
if i in R then writeln('R содержит цифру - ', i) for i:=0 to 1 do
if |
i in R then writeln('В R есть двоичная цифра - ', i) |
|
else writeln('Двоичная цифра ', i, ' не входит в R '); |
END. |
4 |

Разработать программу c заданным индивидуальным кодом (табл.
1)в которой
-ввести два множества M1 и М2 с размерами, указанными 1 и 2 цифрами, а тип символов указан цифрой 4 в таблице 1;
-выполнить для них заданную операцию (цифра 3);
-проверить, входят ли исходные множества в результат операции, а результат в исходные множества;
-проверить, равны ли множества;
-проверить, принадлежат ли элементы, указанные буквой в коде варианта, раздельно множеству M1 или М2 и подсчитать их количество по множествам.
Наименование пунктов в коде:
Первая и вторая цифры размерность исходных множеств. 3 – операции, 4 – тип символов,
5 - буква для проверки принадлежности
5

Таблица 1
код |
код |
код |
код |
№ ва- рианта
1 |
1-9-1-1-е |
9 |
4-4-3-9-j 17 |
4-6-5-8-d |
25 |
5-4-1-6-h |
|
2 |
2-8-2-2-b 10 5-5-4-1-f |
18 3-7-6-5-m |
26 |
5-4-1-6-i |
|||
3 |
3-7-3-3-k 11 6-6-5-2-c |
19 |
2-8-1-5-g |
27 6-3-3-5-m |
|||
4 |
4-6-4-4-о 12 9-1-6-3-h 20 |
5-5-2-6-i |
28 |
7-2-4-7-c |
|||
5 |
5-5-5-5-n |
13 8-2-1-4-n 21 |
6-6-3-7-b 29 |
8-3-5-5-g |
|||
6 |
6-4-6-6-i |
14 |
7-3-2-5-d 22 |
4-4-4-8-n |
30 |
6-5-6-8-b |
|
7 |
7-3-1-7-n 15 |
6-4-3-6-h |
23 |
3-6-5-6-i |
31 |
1-8-1-3-e |
|
8 |
8-2-2-8-a 16 |
5-5-4-7-c 24 |
2-7-6-5-k 32 |
2-7-2-8-f |
6

Операции (третья цифра)
1)*, +
2)*, -
3)+, -
4)+, *
5)-, *
6)-, +
Тип символов во множествах (четвертая цифра) 1)Латинские прописные буквы.
2)Латинские строчные буквы.
3)Русские прописные.
4)Цифры и латинские прописные буквы
5)Любые символы ПК.
6)Русские строчные.
7)Цифры и латинские строчные буквы.
8)Цифры и любые латинские буквы.
9)Цифры и русские буквы.
7

Множество для проверки принадлежности ему заданных элементов (буква)
«а»…«f»;
a)«V»…« »;
b)латинские прописные буквы;
c)« »…«F»;
d)« »…« »;
e)латинские строчные буквы;
f)русские строчные буквы;
g)«а»…«н»;
h)«p»…«я»;
i)русские прописные буквы;
j)« »,«Ъ», «Ы», «Ь»;
k)« » …«И»;
l)все цифры;
m)1…9;
n)5…9.
ВЛ.Р.14 В модуле UNIT r_pos; исправить: вместо функции
min должна быть max - function max(d:mass):integer;
8