Skip to content

Stepiiiiiiik/revpol-calc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

revpol-calc

Описание

Разработана консольная утилита calculator, которая позволяет вычислять арифметические выражения для целых чисел произвольной длины.

Операции

Поддерживаются следующие операции:

  • Сложение
  • Вычитание
  • Умножение

Нотации

Выражение может быть представлено в обратной польской нотации (поддержка обязательна) и инфиксной нотации (поддержка опциональна).

Утилита обрабатывает следующие аргументы командной строки для выбора нотации:

  • --revpol — выражение вводится в обратной польской нотации
    • В этом случае предполагается, что числа с числами, числа с операторами, операторы с числами, разделены пробелами, выражение вводится без скобок.

Реализация

  • Выражение, которое необходимо вычислить, подаётся на стандартный поток ввода
  • Хранение чисел реализовано на связных списках (реализованны самостоятельно)
    • В узлах списка хранятся разряды числа в десятичной системе счисления
  • Должны быть реализованы отрицательные числа
    • отрицательные числа начинаются с минуса после которого сразу следуют цифры
    • таким образом, вычитание возможно двумя способами:
      • 10 4 -
      • 10 -4 +

Сценарии и коды возврата

При различных сценариях программа завершается с разными кодами возврата, а также информирует пользователя о некорректности ввода, в том числе в случае отсутствия одного из указанных аргументов или присутствия «мусора».

  • При корректном входе приложение выводит результат вычисления выражения в стандартный поток вывода и завершается с кодом возврата 0;

  • При некорректной передаче аргументов командной строки приложение выводит соответствующее сообщение об ошибке в стандартный поток ошибок и завершается с кодом 1;

  • Если при разборе структуры выражения или его вычисления возникают ошибки, выводится понятное сообщение о сути проблемы в стандартный поток ошибок и программа завершается с кодом возврата 4;

  • Во всех остальных случаях программа дзавершается с кодом 5.

Лицензия MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors