Главная » Статьи » Лекции » Программирование на Turbo Pascal

Множества в Pascal
 

Множественный тип данных напоминает перечислимый тип данных. Вместе с тем, множество - набор элементов, не организованных в порядке следования. В математике множество - любая совокупность элементов произвольной природы. Понятие множества в программировании значительно уже математического понятия.

Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу.

В качестве базовых типов могут использоваться: перечислимые типы данных, символьный и байтовый типы или диапазонные типы на их основе.

Такие ограничения связаны с формой представления множества в языке и могут быть сведены к тому, что функция Ord для используемого базового типа должна быть в пределах от 0 до 255.

Множество имеет зарезервированное слово set of и вводится следующим описанием

Type
  < имя типа > = set of < имя базового типа >;
Var
  < идентификатор,... >:< имя типа >;

Рассмотрите примеры описания множеств:

Type
  SetByte = set of byte; {множество 1, определённое над типом byte}
  SetChisla = set of 10 ... 20; {множество 2, определённое в диапазоне от 10 до 20
  Symbol = set of char; {множество, определённое на множестве символов}
 Month = (January, February, March, April, May, June, July, August, September, October, November, December);
  Season : set of Month; {тип множества, определённый на базе перечислимого типа Month}
Var
  Letter, Digits, Sign : Symbol {множествa, определённые над символьным типом}
  Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season;
  Index : SetChisla=[12, 15, 17];
  Operation : set of (Plus, Minus, Mult, Divid);
  Param : set of 0..9=[0, 2, 4, 6, 8];

Для переменных типа множества в памяти отводится по 1 биту под каждое возможное значение базового типа. Так, под переменные Letter, Digits, Sign будет отведено по 256/8=32 байта. Для переменной Winter, базовый тип которой (Month) имеет 12 элементов, необходимо 2 байта, причем второй используется только наполовину. Если множество содержит какой-то элемент, то связанный с ним бит имеет значение 1, если нет - 0.

Для того, чтобы дать переменной множества какое-то значение, используют либо конструктор множества - перечисление элементов множества через запятую в квадратных скобках

Sign:=['+', '-'];
Spring:=[March, April, May];
b:=[ 'k', 'l', 'd' ]

либо определение через диапазон. Тогда в множество включены все элементы диапазона

Digits:=['0'..'9'];
WarmSeason := [May .. September];

Обратите внимание, что в определении множества Digits использованы символы в таблице ASCII-кодов, а не целые числа.

Обе формы конструирования могут сочетаться:

Vacation:=[January, February, June .. August];

В программах множества часто используются как константы, в этом случае их можно определить следующим образом:

{постоянное множество допустимых символов}
Const
  YesOrNo = ['Y', 'y', 'N', 'n'];
  {множества - типизированные константы}
Const
  Digits : set of char=['0'..'9'];
  DigitsAndLetter : set of char=['0'..'9', 'a'..'z', 'A'..'Z'];
  {применение операции "+" для объявления множества-константы}
Const
  Yes = ['Y', 'y'];
  No = ['N', 'n'];
  YesOrNo = Yes+No;

 

Категория: Программирование на Turbo Pascal | Добавил: Admin (08.02.2016)
Просмотров: 390 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
ПОИСК
МОЯ КНОПКА
Контакты
МБОУ "Лицей им.Атякшева"

628260 г. Югорск, ул. Ленина 24,
ХМАО-Югра, Тюменская область
Телефон: 8 (34675)2-48-30
Факс: 8 (34675)2-48-30



89222596815 nady_er@mail.ru
Карта
sample map