Выражения. Операции.

Типизированные константы

Дополнительно к обычным константам Turbo Pascal допускает использование качественно новых объектов - типизированных констант. Такие константы занимают промежуточное положение между обычными константами и переменными, что отражается в следующих их характеристиках:

1. Типизированные константы описываются в разделе описаний констант вместе с обычными константами.

2. Так же, как обычные константы, типизированные константы получают при описании (начальное) значение.

3. Аналогично переменным, типизированные константы имеют тип, который задается при их описании, а также могут получать НОВЫЕ значения ( присваиваться ). Т.о., название "константа" в данном случае достаточно условно. Типизированные переменные можно использовать как и обычные переменные таких же типов. Отметим, что типизованные константы инициализируются только один раз - в начале выполнения программы. Таким образом, при каждом новом входе в процедуру или функцию локально описанные типизованные константы заново не инициализируются.

 

Описание типизированной константы

 

Примеры....

Описание типизованной константы с простым типом означает указание значения константы:

const

Maximum : integer = 9999;

Factor : real = -0.1;

Breakchar : char = #3;

Описание меток

 

Раздел описания процедур и функций состоит из описаний процедур и функций, локальных для этого блока.

 

 

Выражение представляет собой формальное правило для вычисления некоторого (нового) значения. В самом общем виде можно сказать, что выражение строится из операндов, знаков операций и круглых скобок. Операнды представляют собой "элементарные" значения; ими могут быть переменные, поля записей, элементы массивов, вызовы функций и т.д. Операции определяют действия по вычислению новых значений, исходя из значений операндов. Операции в языке Pascal обозначаются специальными знаками, состоящими из одного или нескольких символов, напр., @, + или <=; некоторые операции задаются с помощью служебных слов, напр., div, mod.

Операции подразделяются на арифметические операции, логические операции, строковые операции, операции над множествами, операции отношения и операцию @ (операция получения адреса).

Большинство операций являются бинарными, т.е. определенными для двух операндов. В этом случае знак операции записывается между операндами, напр. а+с. Кроме того, имеется несколько унарных операций (содержащих один операнд). Здесь знак операции всегда предшествует операнду, напр., @p, -a. Синтаксис выражений предусматривает определенное старшинство операций (приоритеты). Приоритеты задают очередность выполнения операций в выражениях. Круглые скобки предназначены для указания порядка (очередности) вычислений, если необходимо изменить тот порядок действий, который определен приоритетами операций.

 

Порядок выполнения операций

 

Операция Приоритет Вид операции
@, not   *, /, div, mod, and, shl, shr   +, -, or, xor   =, <>, <, >,<=, >=, in первый (высший)   второй     третий   четвертый (низший) унарная операция   операция умножения     операция сложения   операция отношения

 

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

1. Операнд, находящийся между двумя операциями с различными приоритетами, связывается с операцией, имеющей более высокий приоритет.

2. Операнд, находящийся между двумя операциями с равными приоритетами, связывается с той операцией, которая находится СЛЕВА от него. Иными словами, операции с равными приоритетами выполняются слева направо (хотя иногда Pascal-компилятор может переупорядочить такие операции, если это повлечет большую эффективность объектного кода).

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