trains_hr.gif
 


В ПОМОЩЬ СТУДЕНТУ И ШКОЛЬНИКУ

 


Горбачев Л.И. Основы программирования в среде Turbo Pascal.

[НАЗАД]    [ДАЛЕЕ]

Выражения, операнды, операции.

   Операнд - величина, представляемая собой объект операции, реализуемой ЭВМ в ходе выполнения программы вычислений.

    Переменные и константы всех типов используются в выражениях. Выражение задает порядок выполнения действий над элементами данных и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций. Операции определяют действия, которые надо выполнить над операндами. Например, в выражении (X + Y - 10) X, Y и 10 - операнды; "+", "-" - знаки операций сложения и вычитания.

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

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

    Операции могут быть унарными и бинарными. В первом случае операция относится к одному операнду и всегда записывается перед ним, во втором операция выражает отношение между двумя операндами и записывается между ними.

 

6.1. Арифметические выражения и операции.

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

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

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

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

Операция Действие Типы операндов Тип результата
Бинарные
+ сложение целый
вещественный
целый
вещественный
- вычитание целый
вещественный
целый
вещественный
* умножение целый
вещественный
целый
вещественный
/ деление целый
вещественный
вещественный
div целочисленное деление целый целый
mod остаток целый целый
and арифметическое И целый целый
shl сдвиг влево целый целый
shr сдвиг вправо целый целый
or арифметическое ИЛИ целый целый
xor исключающая дизъюнкция целый целый
Унарные
+ сложение целый
вещественный
целый
вещественный
- вычитание целый
вещественный
целый
вещественный
not сложение целый целый

Действие
Пример
Сохранение знака +A
Изменение знака -A
Сложение A + B
Вычитание A - B
Умножение A * B
Деление A / B
Целочисленное деление A div B
Остаток от целочисленного деления A mod B

    Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть частного, дробная часть отбрасывается. Перед выполнением операции оба операнда округляются до целых значений. Результат целочисленного деления всегда равен нулю, если делимое меньше делителя.
11 div 5 = 2
10 div 3 = 3
2 div 3 = 0

   Деление по модулю (mod) возвращает остаток, полученный при выполнении целочисленного деления, иначе говоря I mod J = I - (I div J) * J. Если J = 0, то возникает ошибка.
11 mod 5 = 1
10 mod 3 = 1
14 mod 5 = 4

   Арифметическое "И" (and) производит логическое умножение операндов в соответствии со следующей таблицей истинности:
1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0

   Операнды записываются в десятичной форме, но во время выполнения переводятся в двоичную форму. Результат представлен в десятичной форме.Пример:
Вычислить результат выражения A and B, если A = 12 и B = 22.
A и B занимают в памяти 2 байта и в двоичной форме имеют вид: 000000000001100 и 000000000010110. В результате выполнения операции 000000000001100 and 000000000010110 в соответствии с таблицей истинности получим результат 0000000000000100, или 4 в десятичной форме. Следовательно, 12 and 22 = 4.

   Сдвиг влево (K shl N) восстанавливает в качестве результата значение, полученное путем сдвига на N позиций влево представленного в двоичной форме числа K.
Пример: Вычислить результат выполнения выражения 2 shl 7.
Число 2 занимает в памяти 2 байта и в двоичной форме имеет вид 000000000000010. Сдвигаем каждый бит на 7 позиций влево, получаем 000000010000000, что соответствует числу 256 в десятичной форме. Следовательно, 2 shl 7 = 256.

   Сдвиг вправо (shr) выполняется аналогично, с той лишь разницей, что сдвиг производится вправо.
160 shr 2 = 40
90 shr 2 = 22
256 shr 7 = 2

   Логическое сложение (or) выполняет сложение операндов в двоичной форме в соответствии с таблицей истинности:
1 or 1 = 1
1 or 0 = 1
0 or 1 = 1
0 or 0 = 0
Результат представлен в десятичной форме. Пример:
Вычислить результат выполнения выражения 12 or 22.
12 и 22 занимают в памяти по 2 байта и в двоичной форме имеют вид: 000000000001100 и 000000000010110 соответственно. Выполнив сложение в соответствии с таблицей истинности, получим двоичное значение суммы 0000000000011110, что соответствует числу 30 в десятичной форме. Следовательно, 12 or 22 = 30.

   Исключающее "ИЛИ" (xor) производит сложение операндов в соответствии с таблицей истинности:
1 xor 1 = 0
1 xor 0 = 1
0 xor 1 = 1
0 xor 0 = 0
Результат преобразовывается в десятичную форму.
Пример: Вычислить результат выполнения выражения 12 xor 22. 12 и 22 занимают в памяти 2 байта и в двоичной форме имеют вид: 000000000001100 и 000000000010110 соответственно. Выполнив сложение по таблице истинности, получим двоичное значение суммы: 0000000000011010 или 26 в десятичной форме. Следовательно, 12 xor 22 = 26.

   Применение операции not к данным целочисленных типов вызывает побитную инверсию (отрицание) соответствующего данному числу двоичного кода.
not 0 = -1
not 78 = -79
Пример: Вычислить результат выполнения выражения not 78.
Число 78 занимает в памяти 2 байта и в двоичной форме имеет вид: 0000000001001110. При выполнении операции все 0 заменяются на 1, а 1 - на 0 соответственно. После выполнения операции not 78 получим: 1111111110110001, что соответствует числу -79 в десятичной форме.

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

   В Турбо Паскале нет операции возведения в степень. При необходимости ее использования применяют стандартные функции:

X^A (x в степени а) = Exp(A * Ln(X));

   Однако таким образом нельзя возвести в целую степень отрицательное число (это можно сделать с использованием операторов цикла).

 

6.2. Выражения и операции отношения.

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

   Сравниваемые величины могут принадлежать к любому скалярному или перечисляемому типу данных. Результат всегда имеет булевский тип и принимает одно из двух значений: True (истина) или False (ложь).
Операции отношения
Операция Название Выражение Результат
= равно A = B True, если A равно B
<> не равно A <> B True, если A не равно B
< меньше A < B True, если A меньше B
> больше A > B True, если A больше B
<= меньше или равно A <= B True, если A меньше или равно B
>= больше или равно A >= B True, если A больше или равно B
in принадлежность   True, если A находится в списке M

 

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

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

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

   Простейшими видами логических выражений являются следующие: логическая константа; логическая переменная; элемент массива логического типа; логическая функция; выражение отношения. Другие логические выражения строятся из вышеперечисленных путем применения логических операций и круглых скобок.
Список логических операций
Операция Действие Выражение A B Результат
not Логическое отрицание not A True
False
  False
True
and Логическое "И" A and B True
True
False
False
True
False
True
False
True
False
False
False
or Логическое "ИЛИ" A or B True
True
False
False
True
False
True
False
True
True
True
False
xor Исключающее "ИЛИ A xor B True
True
False
False
True
False
True
False
False
True
True
False

    Логические операции not, and, or, xor могут выполняться не только над логическими операндами (A, B), но и над целыми числами. В этом случае выполняются соответствующие побитовые операции с учетом двоичного представления операндов.

   При выполнении операций отношения оба операнда (A, B) должны быть одного и того же типа. Допускается лишь одно исключение: A - целого типа, B - вещественного (и наоборот).

 

6.4. Приоритет операций.

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

   Для определения старшинства операций имеется три основных правила:

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

[НАЗАД]    [ДАЛЕЕ]


Главная
Новости
TurboPascal
Учебное пособие
Лекции
Исходники
Математика
Книги
Лекции
Шпоры
ЦТ и ЕГЭ
Физика

Книги

Шпоры
ЦТ и ЕГЭ

Литература

Сочинения

Краткие содержания

Другое
Мой родной край
Фотогалерея
Форум
Ссылки

Гостевая






 

                                        © Copyright(c) 2004 Amro Group. All rights reserved

 

Hosted by uCoz