- Модификация 2. Дополнительное реализовать поддержку выражений в постфиксной записи:
(2 3 +)
равно 5- Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Модификация. Дополнительное реализовать поддержку:
- унарных операций:
Sin
(sin
) — синус,4846147 sin
примерно равно 1;Cos
(cos
) — косинус,5419351 cos
примерно равно 1;
- Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- унарных операций:
- Базовая
- Код должен находиться в файле
objectExpression.js
. - Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Код должен находиться в файле
- Модификация 3. Дополнительное реализовать поддержку:
- унарных операций:
Square
(square
) — возведение в квадрат,3 square
равно 9;Sqrt
(sqrt
) — извлечение квадратного корня из модуля аргумента,-9 sqrt
равно 3;
- Исходный код тестов
- Запускать c аргументом
easy
,hard
илиbonus
- Запускать c аргументом
- унарных операций:
- Модификация 2. Дополнительное реализовать поддержку:
- бинарных операций:
Power
(pow
) — возведение в степень,2 3 pow
равно 8;Log
(log
) — логарифм абсолютного значения аргумента по абсолютному значению основания-2 -8 log
равно 3;
- Исходный код тестов
- бинарных операций:
- Модификация. Дополнительное реализовать поддержку:
- унарных операций:
Sinh
(sinh
) — гиперболический синус,3 sinh
немного больше 10;Cosh
(cosh
) — гиперболический косинус,3 cosh
немного меньше 10;
- Исходный код тестов
- Запускать c аргументом
easy
,hard
илиbonus
- Запускать c аргументом
- унарных операций:
- Базовая
- Код должен находиться в файле
objectExpression.js
. - Исходный код тестов
- Запускать c аргументом
easy
,hard
илиbonus
.
- Запускать c аргументом
- Код должен находиться в файле
- Усложненная. Дополнительное реализовать поддержку:
- констант:
pi
— π;e
— основание натурального логарифма;
- переменных
x
,y
,z
; - операций:
min3
— минимальный из трех элементов,3 1 4 min3
равно 1;max5
— максимальный из пяти элементов,3 1 4 0 2 max5
равно 4.
- Исходный код тестов
- Запускать c аргументом
hard
илиeasy
- Запускать c аргументом
- констант:
- Простая 2. Дополнительное реализовать поддержку:
- констант:
pi
— π;e
— основание натурального логарифма;
- переменных-литералов
x
,y
,z
; - Исходный код тестов
- Запускать c аргументом
hard
илиeasy
- Запускать c аргументом
- констант:
- Простая. Дополнительное реализовать поддержку:
- переменных
y
,z
,u
,v
,w
; - Исходный код тестов
- Запускать c аргументом
hard
илиeasy
.
- Запускать c аргументом
- переменных
- Базовая
- Код должен находиться в файле
functionalExpression.js
. - Исходный код тестов
- Запускать c аргументом
hard
илиeasy
;
- Запускать c аргументом
- Код должен находиться в файле
- Скрипт с примерами
- Запуск в браузере
- Запуск из консоли
Обратите внимание на реализацию функции mCurry
в разделе про
функции высшего порядка.
- Усложненная
- Реализовать операции из простого варианта.
- Дополнительно реализовать поддержку режимов:
u
— вычисления вint
без проверки на переполнение;b
— вычисления вbyte
без проверки на переполнение;f
— вычисления вfloat
без проверки на переполнение.
- Исходный код тестов
- Простая
- Дополнительно реализовать унарные операции:
abs
— модуль числа,abs -5
равно 5;square
— возведение в квадрат,square 5
равно 25.
- Дополнительно реализовать бинарную операцию (максимальный приоритет):
mod
— взятие по модулю, приоритет как у умножения (1 + 5 mod 3
равно1 + (5 mod 3)
равно3
).
- Исходный код тестов
- Дополнительно реализовать унарные операции:
- Базовая
- Класс
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
.
- Исходный код тестов
- Класс
- Усложненная
- Реализовать операции из второго простого варианта.
- Дополнительно реализовать бинарные операции (минимальный приоритет):
min
— минимум,2 min 3
равно 2;max
— максимум,2 max 3
равно 3.
- Исходный код тестов
- Простая
- Дополнительно реализовать унарные операции:
log2
— логарифм по уснованию 2,log2 10
равно 3;pow2
— два в степени,pow2 4
равно 16.
- Исходный код тестов
- Дополнительно реализовать унарные операции:
- Простая 2
- Дополнительно реализовать унарные операции:
abs
— модуль числа,abs -5
равно 5;sqrt
— квадратный корень,sqrt 24
равно 4.
- Исходный код тестов
- Дополнительно реализовать унарные операции:
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Классы
CheckedAdd
,CheckedSubtract
,CheckedMultiply
,CheckedDivide
иCheckedNegate
должны реализовывать интерфейс TripleExpression - Нельзя использовать типы
long
иdouble
- Нельзя использовать методы классов
Math
иStrictMath
- Исходный код тестов
- Класс
- Простая
- Дополнительно реализовать бинарные операции:
<<
— сдвиг влево, минимальный приоритет (1 << 5 + 3
равно1 << (5 + 3)
равно 256);>>
— сдвиг вправо, минимальный приоритет (1024 >> 5 + 3
равно1024 >> (5 + 3)
равно 4);
- Исходный код тестов
- Дополнительно реализовать бинарные операции:
- Простая 2
- Дополнительно реализовать бинарные операции:
&
— побитное И, приоритет меньше чем у+
(6 & 1 + 2
равно6 & (1 + 2)
равно 2);^
— побитный XOR, приоритет меньше чем у&
(6 ^ 1 + 2
равно6 ^ (1 + 2)
равно 5);|
— побитное ИЛИ, приоритет меньше чем у^
(6 | 1 + 2
равно6 | (1 + 2)
равно 7);
- Исходный код тестов
- Дополнительно реализовать бинарные операции:
- Усложненная
- Реализовать операции из простого варианта.
- Дополнительно реализовать унарные операции (приоритет как у унарного минуса):
abs
— модуль числа,abs -5
равно 5;square
— возведение в квадрат,square -5
равно 25.
- Исходный код тестов
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Результат разбора должен реализовывать интерфейс TripleExpression
- Исходный код тестов
- Класс
- Базовая
- Реализовать интерфейс Expression
- Исходный код тестов
- Простая
- Реализовать интерфейс DoubleExpression
- Исходный код тестов
- Усложненная
- Реализовать интерфейсы DoubleExpression и TripleExpression
- Исходный код тестов
- Базовая
- Простая
- Добавить в интерфейс очереди и реализовать метод
toArray
, возвращающий массив, содержащий элементы, лежащие в очереди в порядке от головы к хвосту - Исходная очередь должна оставаться неизменной
- Дублирования кода быть не должно
- Исходный код тестов
- Откомпилированные тесты
- Добавить в интерфейс очереди и реализовать метод
- Усложненная
- Добавить в интерфейс очереди и реализовать методы
- Исходная очередь должна остаться неизменной
- Тип возвращаемой очереди должен соответствовать типу исходной очереди
- Взаимный порядок элементов должен сохраняться
- Дублирования кода быть не должно
- Исходный код тестов
- Откомпилированные тесты
Модификации
- Базовая
- Простая
- Реализовать метод
toArray
, возвращающий массив, содержащий элементы, лежащие в очереди в порядке от головы к хвосту. - Исходная очередь должна остаться неизменной
- Дублирования кода быть не должно
- Исходный код тестов
- Откомпилированные тесты
- Реализовать метод
- Простая 2
- Реализовать метод
toStr
, возвращающий сроковое представление очереди в виде '[
' голова ',
' ... ',
' хвост ']
' - Для получения строкового представления элементов используйте
метод
toString
. - Исходный код тестов
- Откомпилированные тесты
- Реализовать метод
- Усложненная
- Реализовать методы
push
– добавить элемент в начало очередиpeek
– вернуть последний элемент в очередиremove
– вернуть и удалить последний элемент из очереди
- Исходный код тестов
- Откомпилированные тесты
- Реализовать методы
Модификации
- Базовая
- Простая
- Если в массиве
a
отсутствует элемент, равныйx
, то требуется вывести индекс вставки в формате, определенном вArrays.binarySearch
. - Класс должен иметь имя
BinarySearchMissing
- Исходный код тестов
- Откомпилированные тесты
- Если в массиве
- Усложненная
- Требуется вывести два числа: начало и длину диапазона элементов,
равных
x
. Если таких элементов нет, то следует вывести пустой диапазон, у которого левая граница совпадает с местом вставки элементаx
. - Не допускается использование типов
long
иBigInteger
. - Класс должен иметь имя
BinarySearchSpan
- Исходный код тестов
- Откомпилированные тесты
- Требуется вывести два числа: начало и длину диапазона элементов,
равных
Модификации
- Простая
- Входные данные помещаются в тип
long
- Класс должен иметь имя
SumLong
- Исходный код тестов
- Откомпилированные тесты
- Входные данные помещаются в тип
- Усложненная
- Входные данные помещаются в тип
long
- На вход подаются десятичные и шестнадцатеричные числа
- Шестнадцатеричные числа имеют префикс
0x
- Ввод регистронезависим
- Класс должен иметь имя
SumLongHex
- Исходный код тестов
- Откомпилированные тесты
- Входные данные помещаются в тип
Для того, чтобы протестировать исходную программу:
- Скачайте откомпилированные тесты (SumTest.jar)
- Откомпилируйте
Sum.java
- Проверьте, что создался
Sum.class
- В каталоге, в котором находится
Sum.class
выполните командуjava -jar <путь к SumTest.jar>
- Например, если
SumTest.jar
находится в текущем каталоге, выполните команду
java -jar SumTest.jar
- Например, если
Исходный код тестов: