Достоинства множеств очевидны: гибкость представления наборов значений (правда, ограниченных типов и размеров), удобство их анализа. Механизм работы с множествами Турбо Паскаля соответствует базовым математическим действиям с конечными множествами. Значения типа «множество» очень компактно кодируются, и множество из 256 элементов займет всего лишь 32 байта. Множества хорошо работают там, где нужно проводить анализ однотипных выборок значений или накапливать произвольно поступающие значения.
Недостатки множеств — это обратная сторона их достоинств. За компактность представления приходится платить невозможностью вывода множеств на экран, хотя отладчик это проделывает. Причем, эта проблема трудноразрешима, ибо отсутствует механизм изъятия элемента из множества. Довод, что и в математике такое действие не определено, малоутешителен. Можно только убедиться в его наличии в множестве. Ввод множеств возможен только по элементам, как на рис. 7.4.
| VAR
| > S : Set of Char; { переменная-множество }
| > C : Char; { элемент множества }
| BEGIN
| > S := []; С := #0; { обнуление значений }
| > while C<> '.' do begin
| > { цикл до ввода '.' : }
| > ReadLn( C ); { чтение символа в C и }
| > S := S + [ С ] { добавление его к S }
| >end; {while}
| > S := S - [ '.' ] { можно выбросить точку }
| > ...
| END.
Рис. 7.4
Несмотря на эти недостатки, множества — удобный инструмент обработки данных и оптимальный для некоторых приложений способ хранения данных.
- 148 -