Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 96

Достоинства множеств очевидны: гибкость представления наборов значений (правда, ограниченных типов и размеров), удобство их анализа. Механизм работы с множествами Турбо Паскаля соответствует базовым математическим действиям с конечными множествами. Значения типа «множество» очень компактно кодируются, и множество из 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 -

Глава 8. Обработка символов и строк

В этой главе подробно рассматривается работа с символьной информацией. Турбо Паскаль, вводя в обращение очень гибкий тип данных – строковый тип – открывает возможность составлять программы с развитыми алгоритмами обработки текстовой информации.

8.1. Символьный и строковый типы (Char и String)


Язык Турбо Паскаль поддерживает стандартный символьный тип Char и, кроме того, динамические строки, описываемые типом String или String[ n ].

Значение типа Char — это непустой символ из алфавита ПЭВМ, заключенный в одинарные кавычки, например, ' ', 'А', '7' и т.п. Кроме этой, классической, формы записи символов, Турбо Паскаль вводит еще две. Одна из них — представление символа его кодом ASCII с помощью специального префикса # :

#97 = Chr(97) = 'а' (символ 'а'),

#0 = Chr(0) (нулевой символ),

#32 = Chr(32) = ' ' (пробел).

Символы, имеющие коды от 1 до 31 (управляющие), могут быть представлены их «клавиатурными» обозначениями — значком «^» и буквой алфавита с тем же номером (для диапазона кодов 1...26) или служебным знаком (для диапазона 27...31):