Основы программирования — Осенний семестр; Михалкович С.С.; 2008; X

Материал из Вики ИТ мехмата ЮФУ
Версия от 08:17, 2 сентября 2013; Admin (обсуждение | вклад) (Перечислимый тип)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

К основной странице курса

Перечислимый тип

Определение и примеры

Тип, задаваемый перечислением значений, называется перечислимым.

Пример 1.

type
  /// Дни
  Days = (Mon, Tue, Wen, Thi, Fri, Sat, Sun);
  /// Месяцы
  Months = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
  
var
  d: Days;
  m: Months;
begin
  d := Tue;
  m := Months.May;
end.

Переменные перечислимого типа хранятся в памяти, как целые числа. Первому значению соответствует 0, второму — 1, и т.д.

Замечание. Все имена из определения перечислимого типа помещаются в текущее пространство имен.

Переменная перечислимого типа может служить параметром цикла for, а также переключателем в операторе case.

Пример 2.

for m: Months := Jan to Dec do
  case m of
    Jan: writeln('Январь: 31');
    Feb: writeln('Февраль: 28 или 29');
    else writeln('Забыл');
  end;

Стандартные подпрограммы для работы с перечислимым типом

Succ(<переменная>)
  Возвращает следующее значение перечислимого типа
Pred(<переменная>)
  Возвращает предыдущее значение перечислимого типа
Ord(<переменная>)
  Возвращает порядковый номер значения перечислимого типа

Замечание. Тип boolean = (False, True)

Если не инициализировать глобальную переменную перечислимого типа, то по умолчанию она получает значение первой константы типа.

Диапазонный тип

Диапазонный тип строится на базе

  • целого
  • символьного
  • или перечислимого типов

Пример.

type
  Marks = 2..5;
  Digits = '0'..'9';
  Letters = 'a'..'z';
  Summer = Jun..Aug;