Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция №4. Операнды, операции, выражения.doc
Скачиваний:
4
Добавлен:
13.11.2019
Размер:
109.57 Кб
Скачать

Лекция №3.

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

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

Пример.

В выражении (X + Y – 567) X, Y, 567 – операнды,

"+", "–" – знаки операций.

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

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

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

Пример.

– А унарная операция

А + В бинарная операция.

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

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

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

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

операция

действие

типы операндов

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

бинарные

+

сложение

целый, вещественный

целый, вещественный

вычитание

целый, вещественный

целый, вещественный

*

умножение

целый, вещественный

целый, вещественный

/

деление

целый, вещественный

вещественный

div

целоч. деление

целый

целый

mod

остаток

целый

целый

and

арифметич. И

целый

целый

shl

сдвиг влево

целый

целый

shr

сдвиг вправо

целый

целый

or

арифмет. ИЛИ

целый

целый

xor

исключ. ИЛИ

целый

целый

унарные

+

сохранение знака

изменение знака

not

побитная инверсия

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

Целочисленное деление (div) отличается от обычной операции деления тем, что возвращает целую часть от частного, дробная часть отбрасывается. Результат целочисленного деления всегда равен нулю, если делитель меньше делителя.

Пример.

выражение

результат

11 div 5

2

15 div 8

1

2 div 3

0

Деление по модулю (mod) (взятие остатка от целочисленного деления) возвращает остаток, полученный при выполнении целочисленного деления.

Пример.

Выражение

результат

11 mod 5

1

15 mod 6

3

14 mod 5

4

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

1 and 1 = 1 1 and 0 = 0

0 and 1 = 0 0 and 0 = 0

Операнды записываются в десятичной форме, но во время выполнения переводятся в двоичную форму. Результат возвращается в десятичной форме.

Пример.

А=12 , В=22. Найти А and В.

А и В занимают в памяти 2 байта и в двоичной системе имеют вид:

0000000000001100 и 0000000000010110

В результате выполнения операции

00000000000001100 and 0000000000010110

в соответствии с таблицей истинности получим результат

0000000000000100,

или 4 в десятичной форме. Поэтому 12 and 22 = 4.

Сдвиг влево (K shl N) возвращает в качестве результата значение, полученное путем сдвига на N позиций влево представленного в двоичной форме числа К.

Пример.

А=2 , В=7. Найти А shl В.

А занимает в памяти 2 байта и в двоичной системе имеет вид:

00000000000000010.

Сдвигаем каждый бит на 7 позиций влево, получаем

0000000100000000,

или 256 в десятичной форме. Поэтому 2 shl 7 = 256.

Сдвиг вправо (shr) выполняется аналогично, но с той лишь разницей, что сдвиг производится вправо.

Логическое сложение (or) выполняет сложение операндов в двоичной форме в соответствии с таблицей истинности:

1 or 1 = 1 1 or 0 = 1

0 or 1 = 1 0 or 0 = 0

Результат выдается в десятичной форме.

Пример.

А=12 , В=22. Найти А or В.

А и В занимают в памяти 2 байта и в двоичной системе имеют вид:

0000000000001100 и 0000000000010110

В результате выполнения операции

00000000000001100 or 0000000000010110

в соответствии с таблицей истинности получим результат

0000000000011110,

или 30 в десятичной форме. Поэтому 12 or 22 = 30.

Исключающее или (xor) производит сложение операндов в соответствии с таблицей истинности:

1 xor 1 = 0 1 xor 0 = 1

0 xor 1 = 1 0 xor 0 = 0

Результат выдается в десятичной форме.

Пример.

А=12 , В=22. Найти А xor В.

А и В занимают в памяти 2 байта и в двоичной системе имеют вид:

00000000000001100 и 0000000000010110

В результате выполнения операции

00000000000001100 xor 00000000000010110

в соответствии с таблицей истинности получим результат

00000000000010110,

или 26 в десятичной форме. Поэтому 12 xor 22 = 26.

Унарная операция сохранения знака (+) оставляет текущий знак числа без изменения.

Пример.

Выражение

результат

+(–14587)

–14587

+(654)

654

Унарная операция изменения знака () возвращает значение операнда с противоположным знаком.

Пример.

Выражение

результат

–(–14587)

14587

–(+654)

–654

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

Пример.

Выражение

результат

not 0

–1

not 78

–79

Математические стандартные функции

функция

название

Тип аргумента

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

Abs (x)

вычисление абсолютной величины аргумента х

целый или вещественный

совпадает с типом аргумента

Frac (x)

вычисление дробной части аргумента х

вещественный

вещественный

Int (x)

вычисление целой части аргумента х

целый или вещественный

вещественный

Round (x)

ближайшее целое аргумента х

целый или вещественный

целый

Trunc (x)

отбрасывает дробную часть аргумента х

целый или вещественный

целый

Sqr (x)

вычисление квадрата аргумента х

целый или вещественный

совпадает с типом аргумента

Sqrt (x)

вычисление квадратного корня из аргумента х

целый или вещественный

вещественный

Exp (x)

вычисление экспоненты х - ех

целый или вещественный

вещественный

Ln (x)

вычисление натурального логарифма аргумента х

целый или вещественный

вещественный

ArcTan (x)

вычисление угла, тангенс которого равен х. Значение параметра представлено в радианах в диапазоне [–π/2; π/2]

целый или вещественный

вещественный

Cos (x)

вычисление косинуса х. Значение параметра представлено в радианах

целый или вещественный

вещественный

Sin (x)

вычисление синуса х. Значение параметра представлено в радианах

целый или вещественный

вещественный

Pi

возвращает значение числа π

вещественный