Модификации
- Base (32-33)
- Код должен находиться в файле
prolog-solutions/expression.pl
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
илиhard
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- Variables. Дополнительно реализовать поддержку:
- Переменных, состоящих из произвольного количества букв
XYZ
в любом регистре- Настоящее имя переменной определяется первой буквой ее имени
- Переменных, состоящих из произвольного количества букв
- VarSinhCosh (36-37). Сделать модификацию Variables и дополнительно реализовать поддержку:
- унарных операций:
op_sinh
(sinh
) – гиперболический синус,sinh(3)
немного больше 10;op_cosh
(cosh
) – гиперболический косинус,cosh(3)
немного меньше 10.
- унарных операций:
Модификации
- Базовая
- Код должен находиться в файле
prolog-solutions/tree-map.pl
. - Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Код должен находиться в файле
- Last (36-37)
- Добавьте правила:
map_getLast(Map, (Key, Value))
, возвращающее максимальную пару;map_removeLast(Map, Result)
, удаляющее максимальную пару.
- Исходный код тестов
- Добавьте правила:
Модификации
- Базовая
- Код должен находиться в файле
prolog-solutions/primes.pl
. - Исходный код тестов
- Запускать c аргументом
easy
,hard
илиbonus
- Запускать c аргументом
- Код должен находиться в файле
- Gcd (36-37)
- Добавьте правило
gcd(A, B, GCD)
, подсчитывающее НОД(A
,B
) через разложение на простые множители:gcd(4, 6, 2)
. - Исходный код тестов
- Добавьте правило
Модификации
- Базовая
- Код должен находиться в файле
clojure-solutions/expression.clj
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
илиhard
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- PowLog (36-37). Сделать модификацию Variables и дополнительно реализовать поддержку:
- Бинарных правоассоциативных операций максимального приоритета:
IPow
(**
) – возведения в степень:4 ** 3 ** 2
равно4 ** (3 ** 2)
равно 262144ILog
(//
) – взятия логарифма:8 // 9 // 3
равно8 // (9 // 3)
равно 3
- Бинарных правоассоциативных операций максимального приоритета:
Модификации
- Base
- Код должен находиться в файле
clojure-solutions/expression.clj
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
илиhard
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- SumAvg (36-37). Дополнительно реализовать поддержку:
- операций произвольного числа аргументов:
Sum
(sum
) – сумма,(sum 1 2 3)
равно 6;Avg
(avg
) – арифметическое среднее,(avg 1 2 3)
равно 2;
- операций произвольного числа аргументов:
Модификации
- Base
- Код должен находиться в файле
clojure-solutions/expression.clj
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
илиhard
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- SumAvg (36-37). Дополнительно реализовать поддержку:
- операций произвольного числа аргументов:
sum
– сумма,(sum 1 2 3)
равно 6;avg
– среднее,(avg 1 2 3)
равно 2;
- операций произвольного числа аргументов:
Модификации
- Базовая
- Код должен находиться в файле
clojure-solutions/linear.clj
. - Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Код должен находиться в файле
- Simplex (36-37)
- Назовем симплексом многомерную таблицу чисел,
такую что для некоторого
n
в ней существуют все значения с суммой индексов не превышающейn
и только эти значения. - Добавьте операции поэлементного сложения (
x+
), вычитания (x-
) и умножения (x*
) симплексов. Например,(x+ [[1 2] [3]] [[5 6] [7]])
должно быть равно[[6 8] [10]]
. - Исходный код тестов
- Назовем симплексом многомерную таблицу чисел,
такую что для некоторого
Модификации
- Base
- Код должен находиться в файле
javascript-solutions/objectExpression.js
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
илиhard
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- Postfix: SumsqLength (36-37). Дополнительно реализовать поддержку:
- выражений в постфиксной записи:
(2 3 +)
равно 5 - операций произвольного числа аргументов:
Sumsq
(sumsq
) – сумма квадратов,(1 2 3 sumsq)
равно 14;Length
(length
у) – длина вектора,(3 4 length)
равно 5;
- Исходный код тестов
- выражений в постфиксной записи:
Модификации
- Base
- Код должен находиться в файле
javascript-solutions/objectExpression.js
. - Исходный код тестов
- Запускать c указанием модификации и сложности (
easy
,hard
илиbonus
).
- Запускать c указанием модификации и сложности (
- Код должен находиться в файле
- Cube (36, 37). Дополнительно реализовать поддержку:
- унарных функций:
Cube
(cube
) – возведение в куб,3 cube
равно 27;Cbrt
(cbrt
) – извлечение кубического корня,-27 cbrt
равно −3;
- унарных функций:
Модификации
- Базовая
- Код должен находиться в файле
javascript-solutions/functionalExpression.js
. - Исходный код тестов
- Запускать c аргументом
hard
илиeasy
;
- Запускать c аргументом
- Код должен находиться в файле
- Mini (для тестирования)
- Не поддерживаются бинарные операции
- Код находится в файле functionalMiniExpression.js.
- Исходный код тестов
- Запускать c аргументом
hard
илиeasy
;
- Запускать c аргументом
- OneMinMax (36, 37). Дополнительно реализовать поддержку:
- переменных:
y
,z
; - констант:
one
– 1;two
– 2;
- операций:
min5
– минимальный из пяти аргументов,3 1 4 0 2 min5
равно 0;max3
– максимальный из трех аргументов,3 1 4 max3
равно 4.
- Исходный код тестов
- переменных:
Модификации
- Базовая
- Класс
GenericTabulator
должен реализовывать интерфейс Tabulator и сроить трехмерную таблицу значений заданного выражения.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
.
- Исходный код тестов
- Класс
- AsmUls (36-37)
- Реализовать режимы из модификации Uls.
- Дополнительно реализовать унарные операции:
abs
– модуль числа,abs -5
равно 5;square
– возведение в квадрат,square 5
равно 25.
- Дополнительно реализовать бинарную операцию (максимальный приоритет):
mod
– взятие по модулю, приоритет как у умножения (1 + 5 mod 3
равно1 + (5 mod 3)
равно3
).
- Исходный код тестов
Модификации
- Базовая
- Contains (36-37)
- Добавить в интерфейс очереди и реализовать методы
contains(element)
– проверяет, содержится ли элемент в очередиremoveFirstOccurrence(element)
– удаляет первое вхождение элемента в очередь и возвращает было ли такое
- Дублирования кода быть не должно
- Исходный код тестов
- Откомпилированные тесты
- Добавить в интерфейс очереди и реализовать методы
Модификации
- Базовая
- Классы должны находиться в пакете
queue
- Исходный код тестов
- Откомпилированные тесты
- Классы должны находиться в пакете
- Deque (36-37)
- Реализовать методы
push
– добавить элемент в начало очередиpeek
– вернуть последний элемент в очередиremove
– вернуть и удалить последний элемент из очереди
- Исходный код тестов
- Откомпилированные тесты
- Реализовать методы
Модификации
- Базовая
- Класс
BinarySearch
должен находиться в пакетеsearch
- Исходный код тестов
- Откомпилированные тесты
- Класс
- Span (36-37)
- Требуется вывести два числа: начало и длину диапазона элементов,
равных
x
. Если таких элементов нет, то следует вывести пустой диапазон, у которого левая граница совпадает с местом вставки элементаx
. - Не допускается использование типов
long
иBigInteger
. - Класс должен иметь имя
BinarySearchSpan
- Исходный код тестов
- Откомпилированные тесты
- Требуется вывести два числа: начало и длину диапазона элементов,
равных