Do-more Designer: Мощные, интуитивно понятные математические инструкции

Мощные, интуитивно понятные математические инструкции
Таблица стилей математических инструкций (MATH) позволяет смешивать типы данных * и применять формулы и переменные. Математические команды допускают вложение с круглыми скобками до 8 уровней, а также:
- Десять вещественных функций, включая натуральный логарифм, логарифм, e, PI, квадратный корень и конвертацию. Все стандартные тригонометрические функции.
- Восемь статистических функций, включая Average, Min и Max, RANDINT и RANDREAL (для генерации случайных значений), функции стандартного отклонения и многое другое.
- Тринадцать условных функций, включая шесть CountIF, шесть SumIF и выражение If / Else с полным набором бинарных операторов.
Если этого недостаточно, добавьте к этому абсолютную и косвенную адресацию значений, времени, памяти и возможность получить доступ к битам системного уровня, таким как $IndexError, $OutOfRange, $Overflow и т.д.
* Примечание: все целые и вещественные типы данных действительны, но Do-more поддерживает также инструкции BCD и восьмеричных преобразований для устаревших типов данных.
Математическая команда Do-more (выше) используется для оценки объема жидкости в вертикальном цилиндрическом резервуаре:
Cписок ВСЕХ операторов и функций, которые могут быть использованы в математических командах (из файла справки):
Бинарные операторы |
Описание |
Пример |
---|---|---|
+ |
Add |
D0 + D1 |
- |
Subtract |
D0 - D1 |
* |
Multiply |
D0 * D1 |
/ |
Divide |
D0 / D1 |
% |
Modulus/Remainder |
D0 % D1 |
** |
Raise to a Power |
D0 ** D1 |
< |
Less Than |
D0 < D1 |
<= |
Less Than or Equal To |
D0 <= D1 |
== |
Equal To |
D0 == D1 |
!= |
Not Equal To |
D0 != D1 |
>= |
Greater Than or Equal To |
D0 >= D1 |
> |
Greater Than |
D0 > D1 |
&& |
Logical AND |
X0 && X1 |
|| |
Logical OR |
X0 || X1 |
& |
Bit-wise AND |
D0 & 0x7FFF |
| |
Bit-wise OR |
D0 | 0xFFFF |
^ |
Bit-wise XOR |
D0 ^ D1 |
<< |
Shift Left |
D0 << 1 |
>> |
Shift Right |
D0 >> 1 |
>>> |
Unsigned Shift Right |
D0 >>> 1 |
Одинарные операторы |
Описание |
Пример |
---|---|---|
- |
Negate |
-D0 |
~ |
Bit-wise Invert |
~D0 |
! |
Logical Not |
!X0 |
Простые функции |
Описание |
Пример |
---|---|---|
ABS |
Absolute Value |
ABS(D0) |
MAX |
Maximum Between Two Expressions |
MAX(D0 * D1, V2) |
MIN |
Minimum Between Two Expressions |
MIN(D0 * D1, V2) |
Вещественные функции |
Описание |
Пример |
---|---|---|
E |
Euler's Constant e |
E() |
FRAC |
Fractional Portion of a Real Number |
FRAC(R0) |
LN |
Natural Log |
LN(R0) |
LOG |
Log Base 10 |
LOG(R0) |
PI |
Returns the value of PI (3.14159) |
PI() |
ROUND |
Round Real to Nearest Whole Number |
ROUND(R0) |
SQRT |
Square Root |
SQRT(R0) |
TOINT |
Convert to Integer |
TOINT(SQRT(R0)) |
TOREAL |
Convert to Real |
TOREAL(D0 + D1) |
TRUNC |
Truncate Real to a Whole Number |
TRUNC(R0) |
Тригонометрические функции |
Описание |
Пример |
---|---|---|
ACOS |
Arccosine in Radians |
ACOS(R0) |
ASIN |
Arcsine in Radians |
ASIN(R0) |
ATAN |
Arctangent in Radians |
ATAN(D0) |
COS |
Cosine of Radian Angle |
COS(R0) |
DEG |
Convert Radians to Degrees |
DEG(R0) |
RAD |
Convert Degrees to Radians |
RAD(R0) |
SIN |
Sine of Radian Angle |
SIN(R0) |
TAN |
Tangent of Radian Angle |
TAN(R0) |
Статистические функции |
Описание |
Пример |
---|---|---|
AVGR |
Average of a Range of Values |
AVGR(D0,10) |
MAXR |
Maximum Value Across a Range of Values |
MAXR(D0,10) |
MINR |
Minimum Values Across a Range of Values |
MINR(D0, 10) |
RANDINT |
Get Random Integer in Range 0 ... 2147483647 |
RANDINT() |
RANDREAL |
Get Random Real in Range 0.0 ... 1.0 |
RANDREAL() |
STDEVPR |
Population Standard Deviation of a Range |
STDEVPR(R20, 8) |
STDEVR |
Sample Standard Deviation of a Range |
STDEVR(R20, 8) |
SUMR |
Sum of a Range of Values |
SUMR(D0,10) |
Условные функции |
Описание |
Пример |
---|---|---|
COUNTIFEQ |
Count If Equal to Expression |
COUNTIFEQ(42, D0, 10) |
COUNTIFNE |
Count If Not Equal to Expression |
COUNTIFNE(42, D0, 10) |
COUNTIFGE |
Count If Greater Than or Equal to Expression |
COUNTIFGE(42, D0, 10) |
COUNTIFGT |
Count If Greater Than Expression |
COUNTIFGT(42, D0, 10) |
COUNTIFLE |
Count If Less Than or Equal to Expression |
COUNTIFLE(42, D0, 10) |
COUNTIFLT |
Count If Less Than Expression |
COUNTIFLT(42, D0, 10) |
IF |
If / Else Expression |
IF(C7, D0, D1) |
SUMIFEQ |
Sum if Equal to Expression |
SUMIFEQ(42, D0, 10) |
SUMIFNE |
Sum if Not Equal to Expression |
SUMIFNE(42, D0, 10) |
SUMIFGE |
Sum If Greater Than or Equal to Expression |
SUMIFGE(42, D0, 10) |
SUMIFGT |
Sum if Greater Than Expression |
SUMIFGT(42, D0, 10) |
SUMIFLE |
Sum if Less Than or Equal to Expression |
SUMIFLE(42, D0, 10) |
SUMIFLT |
Sum if Less Than Expression |
SUMIFLT(42, D0, 10) |
Временные фукции |
Описание |
Пример |
---|---|---|
NOW |
Get Date/Time Stamp as a 32-bit Integer (1970 Epoch) |
NOW() |
TICKms |
Get Millisecond System Timer Value |
TICKms() |
TICKus |
Get Microsecond System Timer Value |
TICKus() |
Функции памяти |
Описание |
Пример |
---|---|---|
REF |
Read Value Indirectly |
REF(D0, V0) |
[ ] |
Array Index Expression |
D[ (V10 * 16) + V11 ] |