Коднянко В.А.
Программирование на языке Object Pascal в среде Delphi

 

9. Выражения

Вычислительная система выполняет вычислительные и управляющие операции по командам, которые представлены в программе с помощью операторов. Большинство таких операторов строится с использованием выражений, которые в практике программирования играют большую роль, определяя способ и порядок преобразования данных. Выражения состоят из операндов (значений, констант, переменных, функций), соединенных с помощью операций. Для изменения порядка выполнения операций могут быть использованы круглые скобки. Наиболее важную роль играют арифметические, логические и строковые выражения.

9.1. Арифметические выражения

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

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

В языке Object Pascal существует шесть арифметических операций. Учитывая, что арифметические операции образуют подмножество множества всех операций языка, в табл. 7 показано абсолютное значение приоритета каждой операции.

Таблица 7

Операция

Наименование

Приоритет

+

-

*

/

div

mod

Сложение

Вычитание

Умножение

Деление

Деление нацело

Остаток от деления

2

2

1

1

1

1

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

Таблица 8

Операция

Тип операндов

Тип результата

Пример

+

*

/

div

mod

Integer, real

Integer, real

Integer, real

Integer, real

Integer

Integer

integer, real

integer, real

integer, real

real

integer

integer

X + Y

Result - 1

P * InterestRate

X / 2

Total div UnitSize

Y mod 6

Примеры:

4*5 = 20, 6/5 = 1.2, 8+7 = 15, 7-3 = 4, 16 div 5 = 3, 16 mod 5 = 2.

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

Пример:

Выражение:

15 * ((25/5-5*9 + (j-8) * 7.55) / 8.67)

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

       8       2  5 3    6     1     4              7

9.2. Логические выражения

Результатом вычисления логического выражения может быть одно из двух логических значений: True (истина ) или False (ложь).

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

В языке существует четыре логических операций. Приоритет операций показан в табл. 9.

Таблица 9

Операция

Наименование

Приоритет

Not

And

Or

Xor

Отрицание

Конъюнкция

Дизъюнкция

Спец. дизъюнкция

3

4

5

6

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

Таблица 10

A

B

not A

A and B

A or B

A xor B

True

True

False

False

True

False

True

False

False

False

True

True

True

False

False

False

True

True

True

False

False

True

True

False

В табл. 11 представлены логические отношения.

Таблица 11

Отношение

Наименование

>

<

>=

<=

=

<>

Больше

Меньше

Больше или равно

Меньше или равно

Равно

Не равно

Все отношения равноприоритетны.

Порядок выполнения операций при вычислении логического выра-жения следующий:

  • сначала вычисляются арифметические выражения;
  • затем отношения;
  • в последнюю очередь вычисляются логические операции.

Примеры (для x=12, z = 0, y=1):

Таблица 12

Выражение

Результат

5 > 8

(5 < 3) and (z = 0)

((4 + 8) < 0) or not (y = 0)

not ((x < y) and (z > y))

('ab' = 'ac') and (x=z)

(4 in [ 2 .. 23 ])

True

False

True

True

False

True

Пример, демонстрирующий порядок выполнения операций при вычислении логического выражения:

Выражение:

Not ((x > 6 + 8 * 2) and (y < 7) or (z > 7)) and (x <> y)

Порядок:

   9          3       2     1         6           4        7        5            10         8

9.3. Строковые выражения

Строковые выражения, частными случаями которых могут быть пустой символ '' или одиночный символ (например 'A'), строятся из строковых или символьных значений, констант, переменных и строковых функций при помощи строковой операции конкатенации (присоединения). Эта операция обозначена символом + (плюс). Скобки в строковых выражениях не применяются.

Пример:

Выражение:

'Object '+'Pascal '+' для Delphi'

Результат:

'Object Pascal для Delphi'

 

 

</body> </html>