Пример 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.