Rozdział 4. • Zagadnienia trudniejsze 113
Oto przykładowe poprawne deklaracje typów i zmiennych:
type
TKolory = (niebieski, biały, czerwony);
TZbiorZnakow - set of Char;
TZbiorliczb - set of Byte;
TZbiorKolorow - set of TKolory; var
A, B : TZbiorZnakow;
Kolory : TZbiorKolorow;
Przykładowe, możliwe do wykonania operacje przedstawiają się następująco:
A := ['A', ‘b', '7'];
Ustalenie zawartości zbioru A — od tej pory zawiera 3 elementy — znaki: A, b i 7;
B ['a'., 'z', 'B ‘ ];
Ustalenie zawartości zbioru B — od tej pory zawiera wszystkie znaki od a do z oraz B.
A A + B;
Zbiór A staje się sumą zbiorów A i B, czyli będzie zawierał wszystkie elementy należące do któregokolwiek ze zbiorów A i B. Oczywiście powtarzający się element (b) wystąpi w sumie tylko raz (w zbiorze nie ma mowy ani o powtarzaniu się elementów, ani o porządku między nimi!).
A A + ['H1];
Do zbioru A zostaje dodany jeszcze jeden element (znak H).
A A - B;
Zbiór A staje się różnicą zbiorów A i B. Wystąpią w nim tylko te elementy, które były w zbiorze A, a nie było ich w B. W naszym przypadku będzie to tylko jeden element — H.
( 'H' in A)
Wyrażenie mające wartość True, ponieważ element H należy do zbioru A.
('H' in B)
Wyrażenie mające wartość False, ponieważ element H nie należy do zbioru B.
a a - c'H']
Ze zbioru A odejmujemy element H. Zbiór A staje się zbiorem pustym.
W podobny sposób możemy wykonać pozostałe operacje. Dla iloczynu zbiorów stosujemy operator mnożenia (*), do sprawdzania zawierania zbiorów >= oraz <=, do sprawdzania równości = , a różności <>.
Zmiennych typu zbiorowego nie da się wypisać za pomocą instrukcji Write i Writeln, ani bezpośrednio wczytać za pomocą Read i Readln.
ĆWICZENIE
4.22