Пример 2

Составить программу выделения из множества целых чисел от 1до 30 следующих множеств:

- множества чисел кратных 2;

- множества чисел кратных 3;

- множества чисел кратных 6;

- множества чисел кратных 2 или 3.

Program Mnogestva_2;

Const n = 30;

Type mn = Set of 1..n;

Var n2, n3, n6, n23 : mn; {n2 – множество чисел, кратных 2 и т.д.}

k:integer;

Procedure Print(m:mn);

Var i:integer;

Begin

For i:=1 To n Do If i In m Then Write( I : 3 ); Writeln;

End;

Begin

n2 := []; n3 := []; {начальное значение множеств}

For k:= 1 To n Do { формирование n2 и n3}

Begin

{если число делится на 2, то заносим его в n2}

If k Mod 2 = 0 Then n2 := n2 + [k];

{если число делится на 3, то заносим его в n3}

If k mod 3 = 0 Then n3:=n3 + [k];

End;

{числа, кратные 6, - это те, которые кратны и 2, и 3, поэтому это пересечение двух первых множеств, а числа кратные 2 или 3, - это объединение этих же множеств}

 

n6: = n2 * n3; n23 := n2 + n3;

{вывод множеств}

Writeln('числа, кратные 2 ');

Print(n2);

Writeln('числа, кратные 3 ');

Print(n3);

Writeln('числа, кратные 6 ');

Print(n6);

Writeln('числа, кратные 2 или 3 ');

Print(n23);

End.

 

Пример 3

Если взять то общее, что есть у боба с ложкой, добавить кота и поместить в тепло, то получится муравей. Так ли это? Состоит ли муравей из кота?

Program Mnog3;

Var y1, y2, y3, y4, x : Set Of Char;

S : Char;

Begin

y1:=['b', 'o', 'b'];

y2:=['l', 'o', 'g', 'k', 'a'];

y3:=['k', 'o', 't'];

y4:=['t', 'e', 'p', 'l', 'o'];

x:=(y1 * y2) + y3 - y4;

Write(' множество x ');

For s:='a' To 'z' Do

If s In x Then Write(s);

Writeln; {проверка: состоит ли муравей из кота}

If y3<=x Then Write('yes')

Else Write('No');

Readln;

End.