Выражения. Операции.
Типизированные константы
Дополнительно к обычным константам 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. Часть выражения, заключенная в круглые скобки, при вычислении рассматривается как отдельный операнд. Это означает, что все операции внутри подвыражения в круглых скобках будут выполнены перед выполнением операций слева или справа от круглых скобок.