Разработана консольная утилита calculator, которая позволяет вычислять арифметические выражения для целых чисел произвольной длины.
Поддерживаются следующие операции:
- Сложение
- Вычитание
- Умножение
Выражение может быть представлено в обратной польской нотации (поддержка обязательна) и инфиксной нотации (поддержка опциональна).
Утилита обрабатывает следующие аргументы командной строки для выбора нотации:
--revpol— выражение вводится в обратной польской нотации- В этом случае предполагается, что числа с числами, числа с операторами, операторы с числами, разделены пробелами, выражение вводится без скобок.
- Выражение, которое необходимо вычислить, подаётся на стандартный поток ввода
- Хранение чисел реализовано на связных списках (реализованны самостоятельно)
- В узлах списка хранятся разряды числа в десятичной системе счисления
- Должны быть реализованы отрицательные числа
- отрицательные числа начинаются с минуса после которого сразу следуют цифры
- таким образом, вычитание возможно двумя способами:
10 4 -10 -4 +
При различных сценариях программа завершается с разными кодами возврата, а также информирует пользователя о некорректности ввода, в том числе в случае отсутствия одного из указанных аргументов или присутствия «мусора».
-
При корректном входе приложение выводит результат вычисления выражения в стандартный поток вывода и завершается с кодом возврата 0;
-
При некорректной передаче аргументов командной строки приложение выводит соответствующее сообщение об ошибке в стандартный поток ошибок и завершается с кодом 1;
-
Если при разборе структуры выражения или его вычисления возникают ошибки, выводится понятное сообщение о сути проблемы в стандартный поток ошибок и программа завершается с кодом возврата 4;
-
Во всех остальных случаях программа дзавершается с кодом 5.