- Дополнительные требования
- Реализуйте функции
sinиcos. - Усложненная версия: реализуйте поддержку переменных
x,yиz. - Файл должен называться
jsdiff.js
- Реализуйте функции
- [Тесты] (JSDiffTest.java)
- Дополнительные требования
- Реализуйте функцию
abs. - Реализуйте функцию
log. - Реализуйте поддержку переменных
x,yиz. - Файл должен называться
eval.js
- Реализуйте функцию
- [Тесты] (TestJS.java)
- Реализуйте класс
ExpressionParserс методомpublic static Expression3 parse(String) - В выражении могут встречаться умножение
*, деление/, сложение+, вычитание-, унарный минус, целочисленные константы (в десятичной системе счисления, которые помещаются в 32-битный знаковый целочисленный тип), круглые скобки, переменные (x,yиz) и произвольное число пробельных символов в любом месте (не внутри констант). - Операторы, упорядоченные по приоритетам, начиная с самого приоритетного
- унарный минус
- умножение и деление
- сложение и вычитание
- Деление выполняется целочисленно (смотрите, как делятся
int'ы) - Рекомендуется использовать алгоритм рекурсивного спуска разбора выражений. Алгоритм должен работать за линейное время.
- [Тесты] (ParserTest.java)
- Сложная версия
- Выражения должны поддерживать три переменные --
x,yиz. - Выражения должны реализовывать интерфейс Expression3.
- Тесты
- Выражения должны поддерживать три переменные --
- Простая версия
- Выражения должны поддерживать три --
x,yиz. - Выражения должны реализовывать интерфейс Expression.
- Тесты
- Выражения должны поддерживать три --
- Сложная версия
- Должна быть реализована очередь с двумя концами (дэк, deque)
- Название классов:
ArrayDequeSingleton(модуль),ArrayDequeuADT(абстрактный тип данных),ArrayDeque(обычный класс) - Методы:
- Работа с началом очереди:
addFirst,removeFirst,peekFirst - Работа с концом очереди:
addLast,removeLast,peekLast - Размеры:
size,isEmpty
- Работа с началом очереди:
- Тесты
- Простая версия
- Должна быть реализована FIFO-очередь
- Название классов:
ArrayQueueSingleton(модуль),ArrayQueueADT(абстрактный тип данных),ArrayQueue(обычный класс) - Методы:
- Добавление элемента:
enqueue - Удаление элемента:
dequeue - Просмотр элемента:
peek - Размеры:
size,isEmpty
- Добавление элемента:
- Тесты