Вычисляет обычные строковые выражения с переменными в различных типах
Модификации
- Базовая
- Класс
GenericTabulator
должен строить трехмерную таблицу значений заданного выражения.mode
— режим вычислений:i
— вычисления вint
с проверкой на переполнение;d
— вычисления вdouble
без проверки на переполнение;bi
— вычисления вBigInteger
.
expression
— выражение, для которого надо построить таблицу;x1
,x2
— минимальное и максимальное значения переменнойx
(включительно)y1
,y2
,z1
,z2
— аналогично дляy
иz
.- Результат: элемент
result[i][j][k]
должен содержать значение выражения дляx = x1 + i
,y = y1 + j
,z = z1 + k
. Если значение не определено (например, по причине переполнения), то соответствующий элемент должен быть равенnull
.
- Класс
- AsmUfb
- Дополнительно реализовать унарные операции:
abs
— модуль числа,abs -5
равно 5;square
— возведение в квадрат,square 5
равно 25.
- Дополнительно реализовать бинарную операцию (максимальный приоритет):
mod
— взятие по модулю, приоритет как у умножения (1 + 5 mod 3
равно1 + (5 mod 3)
равно3
).
- Дополнительно реализовать поддержку режимов:
u
— вычисления вint
без проверки на переполнение;f
— вычисления вfloat
без проверки на переполнение;b
— вычисления вbyte
без проверки на переполнение.
- Дополнительно реализовать унарные операции:
Сканнер с поддержкой парсинга чисел
Модификации
- Базовая
- Код должен находиться в файле
functionalExpression.js
.
- Код должен находиться в файле
- PieAvgMed. Дополнительно реализовать поддержку:
- переменных:
y
,z
; - констант:
pi
— π;e
— основание натурального логарифма;
- операций:
avg5
— арифметическое среднее пяти аргументов,1 2 3 4 5 avg5
равно 7.5;med3
— медиана трех аргументов,1 2 -10 med3
равно 1.
- переменных:
- Variables. Дополнительно реализовать поддержку:
- переменных:
y
,z
;
- переменных:
- OneIffAbs. Дополнительно реализовать поддержку:
- переменных:
y
,z
; - констант:
one
— 1;two
— 2;
- операций:
abs
— абсолютное значение,-2 abs
равно 2;iff
— условный выбор: если первый аргумент неотрицательный, вернуть второй аргумент, иначе вернуть первый третий аргумент.iff one two 3
равно 2iff -1 -2 -3
равно -3iff 0 one two
равно 1;
- переменных:
- IffAbs. Дополнительно реализовать поддержку:
- переменных:
y
,z
; - операций:
abs
— абсолютное значение,-2 abs
равно 2;iff
— условный выбор: если первый аргумент неотрицательный, вернуть второй аргумент, иначе вернуть первый третий аргумент:iff 1 2 3
равно 2iff -1 -2 -3
равно -3iff 0 1 2
равно 1;
- переменных:
- OneTwo. Дополнительно реализовать поддержку:
- переменных:
y
,z
; - констант:
one
— 1;two
— 2;
- переменных:
Парсер с поддержкой изображений
Парсер с поддержкой вычисления производной и упращения выражения
Модификации
- ArcTan. Дополнительно реализовать поддержку:
- функций:
ArcTan
(atan
) — арктангенс,1256 atan
примерно равно 1.57;ArcTan2
(atan2
) — арктангенс,841 540 atan2
примерно равно 1;
- функций:
- MinMax. Дополнительно реализовать поддержку:
- функций:
Min3
(min3
) — минимум из трех аргументов,1 2 3 min
равно 1;Max5
(max5
) — максимум из пяти аргументов,1 2 3 4 5 max
равно 5;
- функций:
- SinhCosh. Дополнительно реализовать поддержку:
- унарных функций:
Sinh
(sinh
) — гиперболический синус,3 sinh
немного больше 10;Cosh
(cosh
) — гиперболический косинус,3 cosh
немного меньше 10;
- унарных функций:
Парсер с обработкой ошибок
Модификации
- PrefixSumexpSoftmax. Дополнительно реализовать поддержку:
- операций произвольного числа аргументов:
Sumexp
(sumexp
) — сумма экспонент,(8 8 9)
примерно равно 14065;Softmax
(softmax
) — softmax первого аргумента,(softmax 1 2 3)
примерно равно 9;
- операций произвольного числа аргументов:
- PostfixSumexpSoftmax. Дополнительно реализовать поддержку:
- выражений в постфиксной записи:
(2 3 +)
равно 5 - унарных операций:
Sumexp
(sumexp
) — сумма экспонент,(8 8 9 sumexp)
примерно равно 14065;Softmax
(softmax
) — softmax первого аргумента,(1 2 3 softmax)
примерно 9;
- выражений в постфиксной записи:
- PrefixSumAvg. Дополнительно реализовать поддержку:
- операций произвольного числа аргументов:
Sum
(sum
) — сумма,(sum 1 2 3)
равно 6;Avg
(avg
) — арифметическое среднее,(avg 1 2 3)
равно 2;
- операций произвольного числа аргументов:
- PostfixSumAvg. Дополнительно реализовать поддержку:
- выражений в постфиксной записи:
(2 3 +)
равно 5 - унарных операций:
Sum
(sum
) — сумма,(1 2 3 sum)
равно 6;Avg
(avg
) — арифметическое среднее,(1 2 3 avg)
равно 2;
- выражений в постфиксной записи:
- PostfixSumsqLength. Дополнительно реализовать поддержку:
- выражений в постфиксной записи:
(2 3 +)
равно 5 - унарных операций:
Sumsq
(sumsq
) — сумма квадратов,(1 2 3 sumsq)
равно 14;Length
(length
у) — длина вектора,(3 4 length)
равно 5;
- выражений в постфиксной записи: