Типы вычислений, выполняемых в Delphi для данных числового типа, можно разделить на несколько категорий, которые представлены ниже.
Операции присвоения в Delphi
Они используются для определения значения данных. В дополнение к непосредственному вводу значения в память, занятую переменной, используя ее адрес, стандартный метод присваивания заключается в использовании соответствующего оператора, как показано в примере:
1 |
X := Y; |
Эту операцию следует интерпретировать как «Y становится значением для X» или «X принимает значение Y», в отличие от «X равно Y». Последняя интерпретация зарезервирована для оператора логического сравнения, выраженного тем же знаком равенства (без двоеточия, используемого в присваивании).
Логические операции: побитовые в Delphi
Они используются для обработки данных в виде набора битов. Каждый из битов рассматривается как независимая единица, и его изменение не влияет на другие биты данных.
Символ операции | Краткое описание | Пример |
Not | Битовый Отрицание | x:=not $FFFFFF00; {Результат: x=255} |
And | Битовый Логический И | x:=3 and 6; {Результат: x=2} |
Or | Битовый Логический Или | x:=3 or 6; {Результат: x=7} |
Xor | Битовый Исключение | x:=3 xor 6; {Результат: x=5} |
Shl | Битовый Сдвиг Влево | x:=3 shl 2; {Результат: x=12} |
Shr | Битовый Сдвиг Вправо | x:=12 shr 2; {Результат: x=3} |
Логические операции: сравнения в Delphi
Они используются для проверки, выполняется ли данное условие или нет. Это особый вид логических операций, поскольку они работают с данными, но возвращают логические значения. Допускаются следующие действия сравнения:
Символ операции | Краткое описание | Пример |
= | Равно | B:=(1=1); {TRUE} |
< | Меньше | B:=(-1<1); {TRUE} |
<= | Меньше или Равно | B:=(-1<=1); {TRUE} |
> | Больше | B:=(1>-1); {TRUE} |
> = | Больше или Равно | B:=(1>=-1); {TRUE} |
Простые арифметические операции в Delphi
Они используются для манипулирования данными как определенным значением с использованием языковых операторов.
Символ операции | Краткое описание | Пример |
+ | Прибавление | x:=1+2.3; {Результат: x=3.3} |
— | Вычитание | x:=1-3.3; {Результат: x=-2.3} |
* | Умножение | x:=2*3.4; {Результат: x=6.8} |
Div | Целочисленное деление | x:=5 div 3; {Результат: x=1} |
Mod | Остаток от целочисленного деления | x:=18 mod 4; {Результат: x=2} |
/ | Деление | x:=7 / 2; {Результат: x=3.5} |
Арифметические функции в Delphi
Они используются для обработки данных как определенного значения с использованием функций, реализованных в библиотеках. Основные операции перечислены ниже:
Функция | Краткое описание | Пример записи |
Inc | Увеличение (увеличение на 1 или на N) | Inc(X); Inc(X,N); |
Dec | Уменьшение (уменьшение на 1 или на N) | Dec(X); Dec(X,N); |
Abs | Абсолютное значение | Abs(X); |
Int | Целая часть действительного числа | Int(X); |
Frac | Дробная часть действительного числа | Frac(X); |
Sqr | Возвращает квадрат числа | Sqr(X); |
Sqrt | Возвращает квадратный корень числа | Sqrt(X); |
Power | Возводит в степень | Power(X, Y); |
Ln | Натуральный логарифм | Ln(X); |
LnXP1 | Натуральный логарифм для X + 1 | LnXP1(X); |
Log2 | Двоичный логарифм | Log2(X); |
Log10 | Десятичный логарифм | Log10(X); |
LogN | Логарифм от X по основанию B | LogN(B, X); |
Exp | Экспонента | Exp(X); |
Ldexp | X*2P | Ldexp(X,P); |
Hi | Старший байт | Hi(X); |
Lo | Младший байт | Lo(X); |
Sign | Знак. Значение зависит от знака аргумента (-1 для X <0, 0 для X = 0, 1 для X> 0) | Sign(X); |
Round | Математическое округление | Round(X); |
Trunc | Преобразование действительного числа в целое число. Возвращает целую часть. | Trunc(X); |
Floor | Округление до наибольшего целого, меньшего или равного аргумента | Floor(X); |
Ceil | Округление до наименьшего целого | Ceil(X); |
Max | Из двух приведенных чисел возвращается большее | Max(X, Y); |
Min | Из двух приведенных чисел возвращает меньшее | Min(X, Y); |
MaxValue | Из массива чисел возвращает наибольшее | MaxValue (массив); |
MinValue | Из массива чисел возвращает наименьшее | MinValue (массив); |
MaxIntValue | Из массива целых чисел возвращает наибольшее | MaxIntValue (массив); |
MinIntValue | Из числа целых чисел возвращает наименьшее | MinIntValue (массив); |
Сложные операции в Delphi
Они используются для вычисления выражений посредством множества действий, выполняемых со многими данными. Примеры ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var A, B, C : Integer; X, Y, Z : Extended; S : Boolean; begin A := 10; B := -20; C := 30; X := 1.3; Y := -2.4; Z := 3.5; A := A + B * C; {A = -590} B := Round(X * Y); {B = -3} C := Floor(Sign(X) * Sqrt(Z)); {C = 1} X := A / Z - B / Y; {X ? -169,821} Y := Sqr(X) * Sin(X) * C; {Y ? -5033,237} Z := Exp(A + B) * (not B) / X; {Z ? 6,984} S := not ((A and 0) <> (B and 1)); {S = FALSE} end; |
Приоритеты операций в Delphi
При проведении таких расчетов, как приведённых в листинге выше, следует помнить о приоритетах действий, действующих в Delphi. Они представлены в таблице ниже:
Приоритет | Действие |
Ноль (самый высокий) | Функциональные операции |
Дополнительный | Скобки, объединяющие действия: () |
Первый | @, Not |
Второй | *, /, Div, Mod, And, Shl, Shr, As |
Третий | +, -, Or, Xor |
Четвёртый (самый низкий) | =, <, <, >, <=, >=, In, Is |
Дополнительно по Power в Delphi.
Фактически, функция Power делает именно такой расчет, прежде чем проверяются дополнительные условия.
1 2 3 4 5 6 7 8 9 |
function Potega(X, Y:Extended):Extended; begin Result := Exp(ln(X)*Y); end; function Pierwiastek(X, Y: Extended): Extended; begin Result := Exp(ln(X)/Y); end; |