W języku Pascal typy definiowane przez użytkownika rozpoznaje się po charakterystycznych elementach składni. W pokazanej deklaracji kluczowa jest fraza set of – jej obecność oznacza, że definiowany jest typ zbiorowy (set). Taki typ pozwala przechowywać wiele wartości naraz jako zbiór elementów należących do pewnego typu bazowego (np. można trzymać jednocześnie kilka dni tygodnia).Dlaczego to nie jest typ wyliczeniowy? Typ wyliczeniowy w Pascalu ma postać samej listy wartości w nawiasach, np. (pn, wt, sr, czw, pt). W tej deklaracji lista w nawiasach występuje, ale jest użyta jako typ bazowy dla zbioru. Oznacza to, że wartości w nawiasach są elementami, które mogą wchodzić do zbioru, natomiast "set of …" przesądza o typie głównym.
Dlaczego pozostałe odpowiedzi są niepoprawne?
- Typ okrojony (subrange) rozpoznaje się po operatorze .., który wyznacza zakres (np. 0..9). W deklaracji nie ma zakresu ani operatora "..".
- Typ wskaźnikowy (pointer) zawiera operator ^ (np. ^Integer). W deklaracji nie ma znaku "^".
- Typ wyliczeniowy byłby poprawny tylko wtedy, gdyby deklaracja składała się z samej listy wartości w nawiasach, bez "set of".
Wskazówka egzaminacyjna: gdy widzisz w Pascalu set of, najpierw odpowiedz sobie na pytanie "jaki jest typ po lewej stronie?" – to zawsze będzie zbiór, niezależnie od tego, czy typ bazowy jest wyliczeniowy, okrojony czy inny porządkowy.