Модификации
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Классы
CheckedAdd
,CheckedSubtract
,CheckedMultiply
,CheckedDivide
иCheckedNegate
должны реализовывать интерфейс TripleExpression - Нельзя использовать типы
long
иdouble
- Нельзя использовать методы классов
Math
иStrictMath
- Исходный код тестов
- Класс
Модификации
- Базовая
- Класс
ExpressionParser
должен реализовывать интерфейс Parser - Результат разбора должен реализовывать интерфейс TripleExpression
- Исходный код тестов
- Класс
- Shifts
- Дополнительно реализуйте бинарные операции:
<<
– сдвиг влево, минимальный приоритет (1 << 5 + 3
равно1 << (5 + 3)
равно 256);>>
– сдвиг вправо, минимальный приоритет (1024 >> 5 + 3
равно1024 >> (5 + 3)
равно 4);
- Исходный код тестов
- Дополнительно реализуйте бинарные операции:
- ReverseDigits
- Реализуйте операции из модификации Shifts.
- Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
reverse
– число с переставленными цифрами,reverse -12345
равно -54321;digits
– сумма цифр числа,digits -12345
равно 15.
- Исходный код тестов
- Abs
- Реализуйте операции из модификации Shifts.
- Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
abs
– модуль числа,abs -5
равно 5;square
– возведение в квадрат,square -5
равно 25.
- Исходный код тестов
Модификации
- Базовая
- Реализуйте интерфейс Expression
- Исходный код тестов
- Запускать c аргументом
easy
илиhard
- Запускать c аргументом
- Double
- Дополнительно реализуйте интерфейс DoubleExpression
- Исходный код тестов
- Triple
- Дополнительно реализуйте интерфейс TripleExpression
- Исходный код тестов
Модификации
- Турнир
- Добавьте поддержку кругового турнира из c кругов
- Выведите таблицу очков по схеме:
- 3 очка за победу
- 1 очко за ничью
- 0 очков за поражение
- Multiplayer
- Добавьте поддержку значков
-
и|
- Добавьте возможность игры для 3 и 4 игроков
- Добавьте поддержку значков
- Ромб
- Добавить поддержку доски в форме ромба
- Матчи
- Добавьте поддержку матчей: последовательность игр указанного числа побед
- Стороны в матче должны меняться каждую игру
Модификации
-
Underline
- Добавьте поддержку
++подчеркивания++
:<u>подчеркивания</u>
- Исходный код тестов
- Откомпилированные тесты
- Добавьте поддержку
-
Link
- Добавьте поддержку
[ссылок с _выделением_](https://kgeorgiy.info)
:<a href='https://kgeorgiy.info'>ссылок с <em>выделением</em></a>
- Исходный код тестов
- Откомпилированные тесты
- Добавьте поддержку
-
Mark
- Добавьте поддержку
~выделения цветом~
:<mark>выделения цветом</mark>
- Исходный код тестов
- Откомпилированные тесты
- Добавьте поддержку
-
Image
- Добавьте поддержку
![картинок](http://www.ifmo.ru/images/menu/small/p10.jpg)
:<img alt='картинок' src='http://www.ifmo.ru/images/menu/small/p10.jpg'>
- Исходный код тестов
- Откомпилированные тесты
- Добавьте поддержку
Исходный код тестов: Md2HtmlTest.java
Откомпилированные тесты: Md2HtmlTest.jar
Модификации
- HTML
- Дополнительно реализуйте метод
toHtml
, генерирующий HTML-разметку:- выделеный текст окружается тегом
em
; - сильно выделеный текст окружается тегом
strong
; - зачеркнутый текст окружается тегом
s
.
- выделеный текст окружается тегом
- Исходный код тестов
- Дополнительно реализуйте метод
- HTML списки
- Добавьте поддержку:
- Нумерованных списков (класс
OrderedList
, тегol
): последовательность элементов - Ненумерованных списков (класс
UnorderedList
, тегul
): последовательность элементов - Элементов списка (класс
ListItem
, тегli
): последовательность абзацев и списков
- Нумерованных списков (класс
- Для новых классов поддержка Markdown не требуется
- Исходный код тестов
- Добавьте поддержку:
- TeX
- Дополнительно реализуйте метод
toTex
, генерирующий TeX-разметку:- выделеный текст заключается в
\emph{
и}
; - сильно выделеный текст заключается в
\textbf{
и}
; - зачеркнутый текст заключается в
\textst{
и}
.
- выделеный текст заключается в
- Исходный код тестов
- Дополнительно реализуйте метод
- Tex списки
- Добавьте поддержку:
- Нумерованных списков (класс
OrderedList
, окружениеenumerate
): последовательность элементов - Ненумерованных списков (класс
UnorderedList
, окружениеitemize
): последовательность элементов - Элементов списка (класс
ListItem
, тег\item
: последовательность абзацев и списков
- Нумерованных списков (класс
- Для новых классов поддержка Markdown не требуется
- Исходный код тестов
- Добавьте поддержку:
Исходный код тестов:
Модификации
- LineIndex
- В выходном файле слова должны быть упорядочены в лексикографическом порядке
- Вместо номеров вхождений во всем файле надо указывать
<номер строки>:<номер в строке>
- Класс должен иметь имя
WordStatLineIndex
- Исходный код тестов
- Откомпилированные тесты
- FirstIndex
- Вместо номеров вхождений во всем файле надо указывать только первое вхождение в каждой строке
- Класс должен иметь имя
WordStatFirstIndex
- Исходный код тестов
- Откомпилированные тесты
- LastIndex
- Вместо номеров вхождений во всем файле надо указывать только последнее вхождение в каждой строке
- Класс должен иметь имя
WordStatLastIndex
- Исходный код тестов
- Откомпилированные тесты
- SortedLastIndex
- В выходном файле слова должны быть упорядочены в лексикографическом порядке
- Вместо номеров вхождений во всем файле надо указывать только последнее вхождение в каждой строке
- Класс должен иметь имя
WordStatSortedLastIndex
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: WordStatIndexTest.jar
Модификации
- Transpose
- Рассмотрим входные данные как (не полностью определенную) матрицу, выведите ее в транспонированном виде
- Класс должен иметь имя
ReverseTranspose
- Исходный код тестов
- Откомпилированные тесты
- Sort
- Строки должны быть отсортированы по сумме в обратном порядке (при равенстве сумм – в порядке обратном следованию во входе). Числа в строке так же должны быть отсортированы в обратном порядке.
- Исходный код тестов
- Откомпилированные тесты
- Min
- Рассмотрим входные данные как (не полностью определенную) матрицу, вместо каждого числа выведите минимум из чисел в его столбце и строке
- Класс должен иметь имя
ReverseMin
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: FastReverseTest.jar
Модификации
- Words
- В выходном файле слова должны быть упорядочены в лексикографическом порядке
- Класс должен иметь имя
WordStatWords
- Исходный код тестов
- Откомпилированные тесты
- Sort
- Пусть n – число слов во входном файле, тогда программа должна работать за O(n log n).
- Count
- В выходном файле слова должны быть упорядочены по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле
- Класс должен иметь имя
WordStatCount
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: WordStatInputTest.jar
Модификации
- Even
- Выведите только четные числа (в реверсивном порядке)
- Класс должен иметь имя
ReverseEven
- Исходный код тестов
- Откомпилированные тесты
- Linear
- Пусть n – сумма числа чисел и строк во входе, тогда программе разрешается потратить не более 5_n_+O(1) памяти
- Sum
- Рассмотрим входные данные как (не полностью определенную) матрицу, вместо каждого числа выведите сумму чисел в его столбце и строке
- Класс должен иметь имя
ReverseSum
- Исходный код тестов
- Откомпилированные тесты
Исходный код тестов:
Откомпилированные тесты: ReverseTest.jar
Модификации
- Long
- Входные данные являются 64-битными целыми числами
- Класс должен иметь имя
SumLong
- Исходный код тестов
- Откомпилированные тесты
- Hex
- Входные данные являются 32-битными целыми числами
- Шестнадцатеричные числа имеют префикс
0x
- Класс должен иметь имя
SumHex
- Исходный код тестов
- Откомпилированные тесты
- Double
- Входные данные являются 64-битными числами с формате с плавающей точкой
- Класс должен иметь имя
SumDouble
- Исходный код тестов
- Откомпилированные тесты
- LongHex
- Входные данные являются 64-битными целыми числами
- Шестнадцатеричные числа имеют префикс
0x
- Класс должен иметь имя
SumLongHex
- Исходный код тестов
- Откомпилированные тесты
Для того, чтобы протестировать исходную программу:
- Скачайте откомпилированные тесты (SumTest.jar)
- Откомпилируйте
Sum.java
- Проверьте, что создался
Sum.class
- В каталоге, в котором находится
Sum.class
выполните командуjava -jar <путь к SumTest.jar>
- Например, если
SumTest.jar
находится в текущем каталоге, выполните команду
java -jar SumTest.jar
- Например, если
Исходный код тестов:
- Скачайте исходный код (RunMe.java)
- Откомпилируйте код (должен получиться
RunMe.class
) - Запустите класс
RunMe
с выданными вам аргументами командной строки - Следуйте выведенной инструкции