Глава 3. Константы

             Константа - это идентификатор,  отмечающий значение, которое

        не может изменяться.  Идентификатор константы не может быть вклю-

        чен в свое собственное описание.

 

             описание константы

              і      ЪДДДДДДДДДДДДДї    ЪДДДї   ЪДДДДДДДДДї    ЪДДДї

              АДДДДД>іидентификаторГДДД>і = ГДД>іконстантаГДДД>і ; ГДВДД>

                ^    АДДДДДДДДДДДДДЩ    АДДДЩ   АДДДДДДДДДЩ    АДДДЩ і

                і                                                    і

                АДДДДДДДДДДДДДДДДДДДДДДДЩ

 

             Идентификатор константы  с предшествующим ему знаком обозна-

        чает значение целого или вещественного типа.

 

             Являясь расширением  стандартного  Паскаля,  Borland  Pascal

        позволяет  использовать выражения-константы.  Выражение-константа

        представляет собой выражение,  которое может вычисляться компиля-

        тором  без  необходимости выполнения программы.  Приведем примеры

        выражений-констант:

 

              100

              'A'

              256 - 1

              (2.5 + 1) / (2.5 - 1)

              'Borland' + '' + 'Pascal'

              Chr(32)

              Ord('Z') - Ord('A') + 1

 

             Простейший случай  выражения-константы  представляет   собой

        простая  константа,  например 100 или 'A'.  В стандартном Паскале

        допускается использовать  только  простые  константы.  В  Borland

        Pascal разрешено использование выражений-констант.

 

                             ЪДДДДДДДДДї

              константа ДДДД>івыражениеГДДД>

                             АДДДДДДДДДЩ

 

             Поскольку компилятор  должен иметь возможность полностью вы-

        числить выражение-константу во время компиляции, в качестве выра-

        жений-констант не допускается использовать следующие конструкции:

 

             - ссылки  на  переменные  и  типизированные константы (кроме

               констант в адресных выражениях, описываемых в Главе 5);

 

             - вызовы функций (кроме тех, которые отмечены далее);

 

             - оператор получения адреса @ (кроме констант в адресных вы-

               ражениях, описываемых в Главе 5).

 

             За исключением  этих ограничений для выражений-констант соб-

 

         B.Pascal 7 & Objects/LR      - 33 -

 

        людаются те же синтаксические правила,  что и для обычных выраже-

        ний (описанных в Главе 6 "Выражения").

 

             В выражениях-константах  допускается  использовать следующие

        стандартные функции:

 

             Abs, Chr,  Hi,  High,  Length, Lo, Low, Odd, Ord, Pred, Ptr,

             Round, SizeOf, Succ, Swap, Trunc.

 

             Приведем некоторые  примеры использования выражений-констант

        в описаниях констант:

 

             const

                 Min = 0;

                 Max = 100;

                 Center = (Max - Min) div 2;

                 Beta = Chr(255);

                 NumChars = Ord('Z') - Ord('A') + 1;

                 Message = 'Out of memory';

                 ErrStr = 'Error:' + Message + '.';

                 ErrPos = 80 - Length(Error) div 2;

                 ErrAttr = Blink + Red * 16 + White;

                 Ln10 = 2.302585092994095684;

                 Ln10R = 1 / Ln10;

                 Numeric = ['0'..'9'];

                 Alpha = ['A'..'Z','a'..'z'];

                 AlphaNum = Alpha + Numeric;