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

Часто в программах число используется не в качестве арифметической величины, а как указатель некоторого элемента множества. В Паскале предусмотрена возможность называть элементы множества своими именами, то есть можно определить новый тип путем явного перечисления всех его возможных значений, причем каждое такое значение будет определяться только именем. Считается, что значения перечисляемого типа указаны в порядке возрастания, начиная с нулевого, поэтому над этими элементами можно выполнять операции отношения. Причем наиболее часто используются операции = и ¹.

При описании этого типа используется список, заключенный в круглые скобки, а его значения (константы) являются именами:

(<имя1>[,<имя2>...])

Например:

Type

Color = (Red,Yellow,Green); {Светофор}

Day = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);

Var c:Color;

d:day;

...

If d>Fri Then Writeln ('Выходной день');

Для любого перечисляемого типа Т, определенного записью

T = (w0,w1,...,wn),

справедливы свойства:

1. Различимости

wi ¹ wj, если i ¹ j.

2. Упорядоченности

wi < wj, если i < j.

Причем значениями типа Т могут быть только w0, w1,..., wn. Более того, эти имена должны быть уникальны, то есть не должны повторяться ни в других типах, ни при описании переменных.

Диапазоны (интервальный тип)

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

Диапазоны можно задавать для любого простого, но дискретного типа. Дискретными или счетными типами являются такие, для которых можно указать два соседних значения, между которыми нельзя добавить еще одно. Например, для целого 1 и 2, для перечисляемого Sat и Sun и т. д. Единственным исключением здесь являются вещественные числа. В дальнейшем будет показано, что вещественные числа не могут использоваться в некоторых операторах и конструкциях языка Паскаль, в том числе и в диапазонах.

Для указания диапазона используются 2 точки:

Type C = '0'..'9';

Var Min,Sec:0..59;

Hour:0..23;

Так как диапазоны есть подмножества других типов, то для них определены и соответствующие операции.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: