Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jcoderpaul/katacalc

A primitive console calculator - converter. Test task Kata Academy.
https://github.com/jcoderpaul/katacalc

Last synced: 4 days ago
JSON representation

A primitive console calculator - converter. Test task Kata Academy.

Awesome Lists containing this project

README

        

## Консольное приложение "Калькулятор" (KataAcademy)
________________________________________________________________________________________________________________________
### Задание:
Создать консольное приложение "Калькулятор".

Приложение должно читать из консоли введенную пользователем строку: числа, арифметические операции проводимые между ними
и выводить в консоль результат их выполнения.
________________________________________________________________________________________________________________________
### Ограничения:
- Реализуй класс Main с методом - public static String calc(String input): метод должен принимать строку с арифметическим
выражением между двумя числами и возвращать строку с результатом их выполнения.
- Разрешено:
- Добавлять свои импорты, классы и методы.
- Добавленные классы не должны иметь модификаторы доступа (public или другие).
- Обязательное требование:
- Калькулятор умеет выполнять операции сложения, вычитания, умножения и деления с двумя числами:
a + b, a - b, a * b, a / b.
- Данные передаются в одну строку (смотри пример выше)!
- Решения, в которых каждое число и арифмитеческая операция передаются с новой строки считаются неверными.
- Калькулятор умеет работать, как с арабскими (1,2,3,4,5...), так и с римскими (I,II,III,IV,V...) числами.
- Калькулятор должен принимать на вход числа от 1 до 10 включительно, но не более.
- На выходе числа не ограничиваются по величине и могут быть любыми.
- Калькулятор умеет работать только с целыми числами.
- Калькулятор умеет работать, или только с арабскими, или только с римскими цифрами одновременно (в одной строке),
при вводе пользователем смешанной строки, например: 3 + II или IV - 9, калькулятор должен выбросить исключение и
прекратить свою работу.
- При вводе римских чисел, ответ должен быть выведен римскими цифрами, соответственно, при вводе арабских чисел -
ответ ожидается (возвращается) арабскими цифрами.
- При вводе пользователем неподходящих чисел приложение выбрасывает исключение и завершает свою работу.
- При вводе пользователем строки, не соответствующей одной из вышеописанных арифметических операций, приложение
выбрасывает исключение и завершает свою работу.
- Результатом операции деления является целое число, остаток отбрасывается.
- Результатом работы калькулятора с арабскими числами могут быть отрицательные числа и ноль.
- Результатом работы калькулятора с римскими числами могут быть только положительные числа, если результат работы
меньше единицы, выбрасывается исключение.
________________________________________________________________________________________________________________________
### Пример работы программы:

Input: 1 + 2

Output: 3
________________________________________________________________________________________________________________________
Input: VI / III

Output: II
________________________________________________________________________________________________________________________
Input: I - II

Output: throws Exception //т.к. в римской системе нет отрицательных чисел
________________________________________________________________________________________________________________________
Input: I + 1

Output: throws Exception //т.к. используются одновременно разные системы счисления
________________________________________________________________________________________________________________________
Input: 1

Output: throws Exception //т.к. строка не является математической операцией
________________________________________________________________________________________________________________________
Input: 1 + 2 + 3

Output: throws Exception //т.к. формат математической операции не удовлетворяет заданию - три операнда и две операции
________________________________________________________________________________________________________________________