Модификации
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Классы
CheckedAdd
,CheckedSubtract
,CheckedMultiply
,CheckedDivide
иCheckedNegate
должны реализовывать интерфейс TripleExpression - Нельзя использовать типы
long
иdouble
- Нельзя использовать методы классов
Math
иStrictMath
- Исходный код тестов
- Класс
- AbsSqrt (32-35)
- Дополнительно реализуйте унарные операции:
abs
– модуль числа,abs -5
равно 5;sqrt
– квадратный корень,sqrt 24
равно 4.
- Исходный код тестов
- Дополнительно реализуйте унарные операции:
- MinMax (36, 37)
- Реализуйте операции модификации AbsSqrt.
- Дополнительно реализуйте бинарные операции (минимальный приоритет):
min
– минимум,2 min 3
равно 2;max
– максимум,2 max 3
равно 3.
- Исходный код тестов
- GcdLcm (38, 39)
- Реализуйте операции модификации AbsSqrt.
- Дополнительно реализуйте бинарные операции (минимальный приоритет):
gcd
– НОД,2 gcd -3
равно 1;lcm
– НОК,2 lcm -3
равно -6.
- Исходный код тестов
Модификации
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Результат разбора должен реализовывать интерфейс TripleExpression
- Исходный код тестов
- Класс
- Bitwise (32-35)
- Дополнительно реализуйте бинарные операции:
&
– побитное И, приоритет меньше чем у+
(6 & 1 + 2
равно6 & (1 + 2)
равно 2);^
– побитный XOR, приоритет меньше чем у&
(6 ^ 1 + 2
равно6 ^ (1 + 2)
равно 5);|
– побитное ИЛИ, приоритет меньше чем у^
(6 | 1 + 2
равно6 | (1 + 2)
равно 7);
- Исходный код тестов
- Дополнительно реализуйте бинарные операции:
- NotCount (36, 37)
- Реализуйте операции из модификации Bitwise.
- Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
~
– побитное отрицание,~-5
равно 4;count
– число установленных битов,count -5
равно 31.
- Исходный код тестов
- FlipLow (38, 39)
- Реализуйте операции из модификации Bitwise.
- Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
flip
– число с переставленными двоичными цифрами,flip 12345
равно 9987,flip -12345
равно-470548481
;low
– минимальный установленный бит (как в lowestOneBit),low 123456
равно 64.
- Исходный код тестов
Модификации
- Базовая
- Реализуйте интерфейс Expression
- Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Triple (32-35)
- Дополнительно реализуйте интерфейс TripleExpression
- Исходный код тестов
- Double (36, 37)
- Дополнительно реализуйте интерфейс DoubleExpression
- Исходный код тестов
- DoubleTriple (38, 39)
- Дополнительно реализуйте интерфейсы DoubleExpression и TripleExpression
- Исходный код тестов
Модификации
- Матчи (32, 33)
- Добавьте поддержку матчей: последовательность игр до указанного числа побед
- Стороны в матче должны меняться каждую игру
- Турнир (34, 35)
- Добавьте поддержку кругового турнира для нескольких участников из c кругов
- Выведите таблицу очков по схеме:
- 3 очка за победу
- 1 очко за ничью
- 0 очков за поражение
- Multiplayer (36, 37)
- Добавьте поддержку значков
-
и|
- Добавьте возможность игры для 3 и 4 игроков
- Добавьте поддержку значков
- Ромб (36-39)
- Добавить поддержку доски в форме ромба (квадрата, повернутого на 45°)
- Дополнительные ходы (38, 39)
- Если в результате хода игрока на доске появляется новая последовательность из 4+ одинаковых символов, то он делает дополнительный ход
- Игрок может сделать несколько дополнительных ходов подряд
Исходный код тестов:
Модификации
- HTML (32, 33)
- Дополнительно реализуйте метод
toHtml
, генерирующий HTML-разметку:- выделеный текст окружается тегом
em
; - сильно выделеный текст окружается тегом
strong
; - зачеркнутый текст окружается тегом
s
.
- выделеный текст окружается тегом
- Исходный код тестов
- Дополнительно реализуйте метод
- BBCode (34, 35)
- Дополнительно реализуйте метод
toBBCode
, генерирующий BBCode-разметку:- выделеный текст окружается тегом
i
; - сильно выделеный текст окружается тегом
b
; - зачеркнутый текст окружается тегом
s
.
- выделеный текст окружается тегом
- Исходный код тестов
- Дополнительно реализуйте метод
- TexList
- Дополнительно реализуйте метод
toTeX
, генерирующий TeX-разметку:- выделеный текст заключается в
\emph{
и}
; - сильно выделеный текст заключается в
\textbf{
и}
; - зачеркнутый текст заключается в
\textst{
и}
.
- выделеный текст заключается в
- Добавьте поддержку:
- Нумерованных списков (класс
OrderedList
, окружениеenumerate
): последовательность элементов - Ненумерованных списков (класс
UnorderedList
, окружениеitemize
): последовательность элементов - Элементов списка (класс
ListItem
, тег\item
: последовательность абзацев и списков
- Нумерованных списков (класс
- Для новых классов поддержка Markdown не требуется
- Исходный код тестов
- Дополнительно реализуйте метод
- BBCodeList
- Сделайте модификацию BBCode
- Добавьте поддержку:
- Нумерованных списков (класс
OrderedList
, тегlist=1
): последовательность элементов - Ненумерованных списков (класс
UnorderedList
, тегlist
): последовательность элементов - Элементов списка (класс
ListItem
, открывающий тег*
): последовательность абзацев и списков
- Нумерованных списков (класс
- Для новых классов поддержка Markdown не требуется
- Исходный код тестов
Исходный код тестов:
Откомпилированные тесты: WordStatIndexTest.jar
Модификации
- LineIndex (32, 33)
- Вместо номеров вхождений во всем файле надо указывать
<номер строки>:<номер в строке>
- Класс должен иметь имя
WordStatLineIndex
- Исходный код тестов
- Откомпилированные тесты
- Вместо номеров вхождений во всем файле надо указывать
- SortedLineIndex (34, 35)
- В выходном файле слова должны быть упорядочены в лексикографическом порядке
- Вместо номеров вхождений во всем файле надо указывать
<номер строки>:<номер в строке>
- Класс должен иметь имя
WordStatSortedLineIndex
- Исходный код тестов
- Откомпилированные тесты
- CountLineIndex (36, 37)
- В выходном файле слова должны быть упорядочены по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
- Вместо номеров вхождений во всем файле надо указывать
<номер строки>:<номер в строке>
- Класс должен иметь имя
WordStatCountLineIndex
- Исходный код тестов
- Откомпилированные тесты
- CountFirstIndex
- В выходном файле слова должны быть упорядочены по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
- Вместо номеров вхождений во всем файле надо указывать только первое вхождение в каждой строке
- Класс должен иметь имя
WordStatCountFirstIndex
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: FastReverseTest.jar Модификации
- Hex (32, 33)
- Во вводе и выводе используются числа в шестнадцатеричной системе счисления
- Класс должен иметь имя
ReverseHex
- Исходный код тестов
- Откомпилированные тесты
- Abc (34, 35)
- Во вводе и выводе используются числа, записаные буквами:
нулю соответствует буква
a
, единице –b
и так далее - Класс должен иметь имя
ReverseAbc
- Исходный код тестов
- Откомпилированные тесты
- Во вводе и выводе используются числа, записаные буквами:
нулю соответствует буква
- HexDec (36, 37)
- На вход подаются десятичные и шестнадцатеричные числа
- Шестнадцатеричные числа имеют префикс
0x
- Класс должен иметь имя
ReverseHexDec
- Исходный код тестов
- Откомпилированные тесты
- HexAbc (38, 39)
- На вход подаются десятичные и шестнадцатеричные числа
- Шестнадцатеричные числа имеют префикс
0x
- Десятеричные числа могут быть записаны буквами
- Класс должен иметь имя
ReverseHexAbc
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: WordStatInputTest.jar
Модификации
- InputPrefix (32, 33)
- Выходной файл должен содержать все различные префиксы длины 3 слов встречающихся во входном файле, в порядке их появления. Слова длины меньшей 3 игнорируются.
- Класс должен иметь имя
WordStatInputPrefix
- Исходный код тестов
- Откомпилированные тесты
- InputShingles (34, 35)
- Выходной файл должен содержать все различные подстроки длины 3 слов встречающихся во входном файле, в порядке их появления. Слова длины меньшей 3 игнорируются.
- Класс должен иметь имя
WordStatInputShingles
- Исходный код тестов
- Откомпилированные тесты
- WordsPrefix (для 36, 37)
- Выходной файл должен содержать все различные префиксы длины 3 слов встречающихся во входном файле, в лексикографическом порядке. Слова длины меньшей 3 игнорируются.
- Класс должен иметь имя
WordStatWordsPrefix
- Исходный код тестов
- Откомпилированные тесты
- CountShingles (для 38, 39)
- Выходной файл должен содержать все различные подстроки длины 3 слов встречающихся во входном файле, упорядоченые по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
- Класс должен иметь имя
WordStatCountShingles
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: ReverseTest.jar
Модификации:
- Max (для 32, 33)
- Рассмотрим входные данные как (не полностью определенную) матрицу, вместо каждого числа выведите максимум из чисел в его столбце и строке
- Класс должен иметь имя
ReverseMax
- Исходный код тестов
- Откомпилированные тесты
- Min (для 34, 35)
- Рассмотрим входные данные как (не полностью определенную) матрицу, вместо каждого числа выведите минимум из чисел в его столбце и строке
- Класс должен иметь имя
ReverseMin
- Исходный код тестов
- Откомпилированные тесты
- Avg (для 36-39)
- Рассмотрим входные данные как (не полностью определенную) матрицу, вместо каждого числа выведите среднее из чисел в его столбце и строке
- Класс должен иметь имя
ReverseAvg
- Исходный код тестов
- Откомпилированные тесты
Для того, чтобы протестировать исходную программу:
- Скачайте откомпилированные тесты (SumTest.jar)
- Откомпилируйте
Sum.java
- Проверьте, что создался
Sum.class
- В каталоге, в котором находится
Sum.class
выполните командуjava -jar <путь к SumTest.jar>
- Например, если
SumTest.jar
находится в текущем каталоге, выполните команду
java -jar SumTest.jar
- Например, если
Исходный код тестов:
Модификации:
- Long (для 32, 33)
- Входные данные являются 64-битными целыми числами
- Класс должен иметь имя
SumLong
- Исходный код тестов
- Откомпилированные тесты
- Float (для 34, 35)
- Входные данные являются 32-битными числами с формате с плавающей точкой
- Класс должен иметь имя
SumFloat
- Исходный код тестов
- Откомпилированные тесты
- LongSpace (для 36, 37)
- Входные данные являются 64-битными целыми числами
- Класс должен иметь имя
SumLongSpace
- Числа разделяются пробелами-разделителями
- Исходный код тестов
- Откомпилированные тесты
- BigIntegerSpace (для 38, 39)
- Входные данные помещаются в тип BigInteger
- Класс должен иметь имя
SumBigIntegerSpace
- Числа разделяются пробелами-разделителями
- Исходный код тестов
- Откомпилированные тесты
- Скачайте исходный код (RunMe.java)
- Откомпилируйте код (должен получиться
RunMe.class
) - Запустите класс
RunMe
с выданными вам аргументами командной строки - Следуйте выведенной инструкции