Иллюстрированный самоучитель по Delphi 7 для начинающих

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

До этого момента в программах использовались стандартные типы данных: integer, Real, Char, string и Boolean. Вместе с тем, язык Delphi позволяет программисту определить свой собственный тип данных, а затем данные этого типа использовать в программе.

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

  • перечисляемому;
  • интервальному;
  • составному типу данных (записи).

Определить перечисляемый тип – это значит перечислить все значения, которые может принимать переменная, относящаяся к данному типу.

В общем виде объявление перечисляемого типа выглядит так:

Тип =(Значение1, Значение2,… Значение i)

Где:

  • Тип – имя перечисляемого типа данных;
  • Значение i – символьная константа, определяющая одно из значений, которое может принимать переменная типа Тип.

Примеры:

TDayOfWeek = (MON,TUE,WED,THU,FRI,SAT,SUN);

TColor = (Red,Yellow,Green);

Примечание
Согласно принятому в Delphi соглашению, имена типов должны начинаться с буквы Т (от слова Type – тип)
.

После объявления типа можно объявить переменную, относящуюся к этому типу, например:

type
TDayOfWeek = (MON,TUE,WED,THU, FRI,SAT,SUN);
var
ThisDay, LastDay: TDayOfWeek;

Помимо указания значений, которые может принимать переменная, описание типа задает, как значения соотносятся друг с другом. Считается, что самый левый элемент списка значений является минимальным, а самый правый – максимальным. Для элементов типа DayOfWeek справедливо:

MON < TUE < WED < THU < FRI < SAT < SUN

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

if (Day = SAT) OR (Day = SUN) then
begin
{ действия, если день – суббота или воскресенье }
end;
Приведенную инструкцию можно записать и так:
if Day > FRI then begin
{ действия, если день – суббота или воскресенье }
end;

Очевидно, что программа, написанная с использованием объявленного программистом типа, более наглядна, легче читается и, следовательно, уменьшается вероятность появления ошибки.

Во время компиляции Delphi проверяет соответствие типа переменной типу выражения, которое присваивается переменной. Если тип выражения не может быть приведен к типу переменной, то выводится сообщение об ошибке.

Например, в фрагменте программы:

type
TDayOfWeek = (MON, TUE, WED, THU, FRI, SAT, SUN);
ThisDay: TDayOfWeek; begin
ThisDay: = 1;
if ThisDay = 6 then begin
{ блок инструкций }
end;

Инструкция ThisDay: = i; ошибочна, т. к. переменная ThisDay принадлежит к определенному программистом перечисляемому типу TDayOfWeek, а константа, значение которой ей присваивается, принадлежит к целому типу (integer). В условии инструкции if тоже ошибка.

Можно утверждать, что объявление перечисляемого типа – это сокращенная форма записи объявления именованных констант. Например, приведенное выше объявление типа TDayOfWeek равносильно следующему объявлению:

const
MON=0; TUE=1; WED=2; THU=3; FRI=4; SAT=5; SUN=6;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.