| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Выражения, операнды, операции.Операнд - величина, представляемая собой объект операции, реализуемой ЭВМ в ходе выполнения программы вычислений. Переменные и константы всех типов используются в выражениях. Выражение задает порядок выполнения действий над элементами данных и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций. Операции определяют действия, которые надо выполнить над операндами. Например, в выражении (X + Y - 10) X, Y и 10 - операнды; "+", "-" - знаки операций сложения и вычитания. В простейшем случае выражение может состоять из одной переменной или константы. Круглые скобки ставятся так же, как и в обычных арифметических выражениях для управления ассоциативностью и порядком выполнения операций. Операции в языке Паскаль подразделяются на арифметические, отношения, логические (булевские), операцию @ (указатель), строковые и т.д. в зависимости от того, какого типа операнды и операции в них используются. Операции могут быть унарными и бинарными. В первом случае операция относится к одному операнду и всегда записывается перед ним, во втором операция выражает отношение между двумя операндами и записывается между ними.
6.1. Арифметические выражения и операции.Выражения - это конструкции, определяющие действия, которые должны быть выполнены для вычисления величин. Поскольку результатом выполнения этих действий будет величина, само выражение можно считать конструкцией, представляющей величину. Арифметическое выражение порождает целое или действительное значение. Наиболее простыми формами арифметических выражений являются: целая или действительная константа без знака; целая или действительная переменная; элемент массива целого или действительного типа; функция, принимающая целое или действительное значение. Значение переменной или элемента массива должно быть определено до их появления в арифметическом выражении. Другие арифметические выражения составляются из вышеперечисленных простых форм путем применения круглых скобок и арифметических операций. Арифметические операции выполняют арифметические
действия в выражениях над значениями операндов целочисленных и вещественных
типов. Арифметические операции языка Паскаль представлены в виде следующей
таблицы:
Целочисленное деление (div) отличается от обычной
операции деления тем, что возвращает целую часть частного, дробная часть
отбрасывается. Перед выполнением операции оба операнда округляются до целых
значений. Результат целочисленного деления всегда равен нулю, если делимое
меньше делителя. Деление по модулю (mod) возвращает остаток,
полученный при выполнении целочисленного деления, иначе говоря I mod J = I - (I
div J) * J. Если J = 0, то возникает ошибка. Арифметическое "И" (and) производит логическое
умножение операндов в соответствии со следующей таблицей истинности: Операнды записываются в десятичной форме, но во
время выполнения переводятся в двоичную форму. Результат представлен в
десятичной форме.Пример: Сдвиг влево (K shl N) восстанавливает в качестве
результата значение, полученное путем сдвига на N позиций влево представленного
в двоичной форме числа K. Сдвиг вправо (shr) выполняется аналогично, с той
лишь разницей, что сдвиг производится вправо. Логическое сложение (or) выполняет сложение
операндов в двоичной форме в соответствии с таблицей истинности: Исключающее "ИЛИ" (xor) производит сложение
операндов в соответствии с таблицей истинности: Применение операции not к данным целочисленных
типов вызывает побитную инверсию (отрицание) соответствующего данному числу
двоичного кода. В любом выражении, если один или более операндов имеют вещественный тип, то результат будет тоже вещественного типа. В операциях div и mod оба операнда должны быть целого типа. В Турбо Паскале нет операции возведения в степень.
При необходимости ее использования применяют стандартные функции: Однако таким образом нельзя возвести в целую степень отрицательное число (это можно сделать с использованием операторов цикла).
6.2. Выражения и операции отношения.Выражения отношения определяет истинность или ложность результата. Операции отношения выполняют сравнение двух операндов и определяют, истинно ли значение выражения или ложно. В языке Паскаль операции отношения и булевские операции важны, так как они интенсивно используются для управления циклами и в условных операторах. Сравниваемые величины могут принадлежать к любому скалярному или перечисляемому типу данных. Результат всегда имеет булевский тип и принимает одно из двух значений: True (истина) или False (ложь).
6.3. Логические выражения и операции.Логические выражения строятся из логических констант и переменных, логических операций и операций отношения. В операциях отношения могут участвовать арифметические и логические выражения, а также символьные данные. Результатом выполнения логического (булевского) выражения является логическое значение True или False. Операндами служат данные только булевского типа. Простейшими видами логических выражений являются
следующие: логическая константа; логическая переменная; элемент массива
логического типа; логическая функция; выражение отношения. Другие логические
выражения строятся из вышеперечисленных путем применения логических операций и
круглых скобок.
Логические операции not, and, or, xor могут выполняться не только над логическими операндами (A, B), но и над целыми числами. В этом случае выполняются соответствующие побитовые операции с учетом двоичного представления операндов. При выполнении операций отношения оба операнда (A, B) должны быть одного и того же типа. Допускается лишь одно исключение: A - целого типа, B - вещественного (и наоборот).
6.4. Приоритет операций. Выполнение каждой операции происходит с учетом ее
приоритета. Значения приоритетов приведены ниже в таблице.
Для определения старшинства операций имеется три основных правила:
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© Copyright(c) 2004 Amro Group. All rights reserved |
|