Модификации
- 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 - Исходный код тестов
- Откомпилированные тесты
- Требуется вывести два числа: начало и длину диапазона элементов,
равных