Константы типа множество

Const

Begin

Begin

Type

Константы процедурных типов.

Const

Var

Type

Константы указателей.

Const

Type

Константы записей.

Const

Type

Константы массивов

Const

Строковые константы.

Начала сегмента, в котором расположен буфер в

Const

Var

Const

Константы простых типов.

Maximum:Integer = 9999;

Factor: Real = -0.1;

Gr: Char = #13; {Значение константы – код возврата

каретки}

В адресных константных выражениях допускается использование адресных функций определения сегмента Seg и смещения Ofs и операции определения адреса @.

Buffer: array [0..1023] of Byte; {объявлен массив для

использования в качестве буфера ввода или вывода}

BufSeg:Word = Seg(Buffer); {константа, содержащая адрес

оперативной памяти}

BufOfs:Word = Ofs(Buffer); {константа, содержащая смещения

начала буфера в сегменте оперативной памяти}

Heading:String[7] = 'Section';

NewLine: String[2] = #13#10;{константа содержит символы

перевода строки и возврата каретки}

Reply:String=''; {строка, которая может содержать до 255

символов, в исходном положении пустая (0 символов)}

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

Index=array[1..3] of real;

Matrix=array [1..3,1..2] of integer

Ref: Index = (1.2,1.25,1.4);

M:Matrix = ((11,12),(21,22),(31,32));

Значения констант-записей указываются в скобках, значению каждого поля предшествует имя соответствующего поля с двоеточием. Значения полей отделяются друг от друга точками с запятой.

PlotPoint=Record;

X,Y: Real

Color:Byte;

End;

Dot: PlotPoint = (X: 0.0; Y:10.5; Color: 15);

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

Ptr=^String; {Тип указателя на строки длиной 255 символов}

S1:String;

P1:Ptr=@S1; {указатель содержит адрес начала строки S1}

P2:Ptr=Nil; {указатель содержит значение Nil}

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

ErrorProc=Procedure(ErrorCode:Byte);

Procedure DefaultError(E:Byte); Far;

Writeln('Ошибка ', E);

End;

Procedure InputError(E:Byte); Far;

Writeln('Ошибка ввода данных ', E);

Writeln('Введено недопустимое значение. Повторите ввод')

End;

ErrorHandler:ErrorProc=DefaultError;

После такого описания в программе можно вызвать процедуру обработки ошибки по умолчанию DefaultError следующим образом:

ErrorHandler(50); {50 – номер ошибки,

вызывается DefaultError}

Допустим, далее в программе константе присваивается имя другой процедуры:

ErrorHandler:=InputError;

Теперь по имени той же константы будет вызываться другая процедура.

ErrorHandler(12); {12 – номер ошибки,

вызывается InputError}

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


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



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