- В записи выражения могут встречаться: умножение
*
, деление/
, сложение+
, вычитание-
, унарный минус-
, целочисленные константы (в десятичной системе счисления, которые помещаются в 32-битный знаковый целочисленный тип), круглые скобки, переменные (x
) и произвольное число пробельных символов в любом месте (но не внутри констант). - Классы должны позволять составлять выражения вида
new Subtract(
new Multiply(
new Const(2),
new Variable("x")
),
new Const(3)
).evaluate(5)
-
При вычислении такого выражения вместо каждой переменной подставляется значение, переданное в качестве параметра методу evaluate (на данном этапе имена переменных игнорируются). Таким образом, результатом вычисления приведенного примера должно стать число 7.
-
Для тестирования программы должен быть создан класс Main, который вычисляет значение выражения x2−2x+1, для x, заданного в командной строке.
- Класс
ExpressionParser
реализует интерфейс Parser - Результат разбора реализует интерфейс TripleExpression
- Классы
CheckedAdd
,CheckedSubtract
,CheckedMultiply
,CheckedDivide
иCheckedNegate
реализуют интерфейс TripleExpression - Не используются типы
long
иdouble
- Не используются методы классов
Math
иStrictMath
- Дополнительно реализованы унарные операции:
high
— значение, у которого оставлен только самый старший установленный битhigh -4
равноInteger.MIN_VALUE
;low
— значение, у которого оставлен только самый младший установленный битlow 18
равно2
.
- Исходный код тестов
- Класс
-
Реализованы классы, представляющие циклическую очередь с применением массива.
- Класс
ArrayQueueModule
реализует один экземпляр очереди с использованием переменных класса. - Класс
ArrayQueueADT
реализует очередь в виде абстрактного типа данных (с явной передачей ссылки на экземпляр очереди). - Класс
ArrayQueue
реализует очередь в виде класса (с неявной передачей ссылки на экземпляр очереди).
- Класс
-
Реализованы следующие функции (процедуры) / методы:
enqueue
– добавить элемент в очередь;element
– первый элемент в очереди;dequeue
– удалить и вернуть первый элемент в очереди;size
– текущий размер очереди;isEmpty
– является ли очередь пустой;clear
– удалить все элементы из очереди.
-
Специфика проекта:
- Классы находиятся в пакете
queue
- Реализован метод
toArray
, возвращающий массив, содержащий элементы, лежащие в очереди в порядке от головы к хвосту. - Реализованы методы
push
– добавить элемент в начало очередиpeek
– вернуть последний элемент в очередиremove
– вернуть и удалить последний элемент из очереди
- Исходный код тестов
- Откомпилированные тесты
- Классы находиятся в пакете
-
Определен интерфейс очереди Queue и опиcан его контракт.
-
Реализован класс LinkedQueue — очередь на связном списке.
-
Выделены общие части классов LinkedQueue и ArrayQueue в базовый класс AbstractQueue.
- Добавлен в интерфейс очереди и реализован метод
toArray
, возвращающий массив, содержащий элементы, лежащие в очереди в порядке от головы к хвосту - Добавлен в интерфейс очереди и реализованы методы
- Исходный код тестов
- Откомпилированные тесты
- Добавлен в интерфейс очереди и реализован метод