Zbiory umożliwiają przechowywanie danych w różnych formatach. Dzięki nim możemy w prosty sposób dodawać, usuwać oraz sprawdzać obecność określonych wartości.
1.Deklaracja i przypisanie wartości
Zbiory deklarujemy podobnie jak rekordy :
1 2 3 4 5 |
type TByteSet = set of Byte; TSmallSet = set of 0..15; |
W pierwszym przypadku ( TByteSets ) jako dopuszczalne wartości wybioramy wszystkie liczby z przedziału 0..255, zaś w drugim wyłącznie z przedziału 0..15 (TSmallSet). Utwórzmy nowe zmienne:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
var ByteSet : TByteSet; SmallSet : TSmallSet; DaySet : TDaySet; //zawiera dni begin ByteSet := [0..100, 110, 123, 200..250, 255]; SmallSet := [0, 2, 4, 6, 8, 10, 12, 14]; DaySet := [Sunday..Wednesday, Friday]; end; |
Jak widzimy do zmiennych możemy zapisać różne wartości w dowolnej ilości będące wcześniej zadeklarowanego typu.
2.Testowanie zawartości
Sprawdźmy, czy dana wartość znajduje się w zbiorze :
1 2 3 |
if 10 in ByteSet then ShowMessage('Jest'); if Saturday in DaySet then ShowMessage('Jest'); |
W przetłumaczeniu polecenie brzmi : „jeżeli dziesięć jest w naszym zbiorze należy wyświetlić komunikat”
3.Porównywanie zawartości
Porównymwanie zawartości jest to jeden z największych plusów zbiorów. W przypadku tablic sprawa byłaby trudniejsza. Oto najprostszy przykład:
1 2 3 4 5 6 7 8 9 10 11 |
X := [0, 5, 10]; Y := [10, 5, 0] ; if X = Y then ShowMessage('X jest równe Y'); if [5, 10] = X then ShowMessage('X ma inną zawartość'); |