-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsets.pas
66 lines (53 loc) · 1.27 KB
/
sets.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// 2020-02
program Sets;
type
// sets are collections of same type
days_of_week = set of (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
letters = set of char;
alphabet = set of 'A' .. 'Z';
var
// declare sets
A: alphabet;
B: alphabet;
C: alphabet;
days: days_of_week;
// declare iterator variables
i: char;
begin
A := ['A', 'B', 'C', 'D'];
for i in A do write(i, ' '); writeln();
// A B C D
B := ['C', 'D', 'E', 'F'];
for i in B do write(i, ' '); writeln();
// C D E F
// union
for i in (A + B) do write(i, ' '); writeln();
// A B C D E F
// intersection
for i in (A * B) do write(i, ' '); writeln();
// C D
// difference
for i in (A - B) do write(i, ' '); writeln();
// A B
// symmetric difference
for i in (A >< B) do write(i, ' '); writeln();
// A B E F
// subset
C := ['A', 'B', 'C'];
if (C <= A) then writeln(true);
// TRUE
// include
include(A, 'E');
for i in A do write(i, ' '); writeln();
// A B C D E
// exclude
exclude(A, 'E');
for i in A do write(i, ' '); writeln();
// A B C D
// in
if 'A' in A then writeln(true);
// TRUE
days := [Mon, Wed, Fri];
if Wed in days then writeln(true);
// TRUE
end.