Типы вычислений, выполняемых в 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; |