Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Создай консольное приложение “Калькулятор”. Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции проводимые между ними и выводить в консоль результат их выполнения.

Реализуй класс 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 калькулятор должен выбросить исключение и прекратить свою работу.
  • При вводе римских чисел, ответ должен быть выведен римскими цифрами, соответственно, при вводе арабских - ответ ожидается арабскими.
  • При вводе пользователем неподходящих чисел приложение выбрасывает исключение и завершает свою работу.
  • При вводе пользователем строки, не соответствующей одной из вышеописанных арифметических операций, приложение выбрасывает исключение и завершает свою работу.
  • Результатом операции деления является целое число, остаток отбрасывается.
  • Результатом работы калькулятора с арабскими числами могут быть отрицательные числа и ноль. Результатом работы калькулятора с римскими числами могут быть только положительные числа, если результат работы меньше единицы, выбрасывается исключение
Пример работы программы: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 //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)

год назад
AlexandrinaA
35 летРоссия
год в сервисе
Была
год назад
Выбранный исполнитель
mergashev
Мухаммад 
29 летУзбекистан
год в сервисе
Был
год назад
16 отзывов
год назад
$35
1 день
Очень добродушный и коммуникабельный, в исполнении заказа предусмотрел все пожелания, которых было не мало, даже комментарии прописал со всеми пояснениями, выполнил очень быстро, даже неожиданно, через 3-4 часа уже всё было готово. Во-общем 5 звёзд, однозначно очень рекомендую и большое человеческое спасибо.
Было очень интересно работать, чётко поставленная задача, я доволен заказчиком рекомендую
  • Похожие заказы
  • $3000

    Необходимо разработать приложение, на бэке - Nest.JS, Typescript, на фронте - Vue3 Composition API. Проект представляет собой HRM/CRM для автоматизации получения лицензий, базу данных с личными кабинетами для разных типов пользователей. Проект большой и интересный, ...

    Закрыт
    год назад
  • $60

    Нужен автокликер работающий таким образом: Я открываю 4 окна скажем блокнота и одновременно в нем прожимаются клавиши 1 2 3 и т.д с определенным интервалом, который я мог бы задать сам. Под каждое окно - нужна своя ...

    Закрыт
    год назад
  • $20

    [list][*]Из txt вытягивать абзацы где содержится словосочетание "Имя№1 Shows" "Имя№2 Shows"[*]кол-во имен около 500  содержаться в отдельном файле. Использовать каждое и сравнивать. Если есть совпадение то переносить в отдельный txt файл весь абзац[*]Абзацы выделены пробелами ...

    Закрыт
    год назад
  • $25

    точка входа - рост или падение цены в нескольких свечах не меняющих направление на указаное количество пунктов, открытие ордера в противоположную сторону. При движении далее цены в том же направлении (против сделки) при повышении на ...

    Закрыт
    год назад
  • Задача по машинному обучению. Необходимо разработать программу с интерфейсом, реализующую алгоритм RS1, который основан на теории приближенных множеств (Rough set theory). Сеты для работы нужно брать исключительно с репозитория UCI Machine Learning Repository. Что должна включать в себя ...

    Закрыт
    год назад
  • Cкрипт для Квика который выводил бы в живом режиме в Эксель данные свечей за заданный прошедший период одновременно добавляя туда строки со свежими данными по мере их появления на рынке.

    Закрыт
    год назад
  • на основе введенного в неe текста или анимированый png если такой есть текст в гифе должен печататься именно так по времени как он печатался в окне программы фонт в гифе должен быть такой который меня устроит непример fixedsys программе можно ...

    Прикладное ПОнет заявок
    Закрыт
    год назад
  • Нужен софт который будет парсить резюме на сайте работа.ру и далее пушить кандидатов в whatsapp. Есть полурабочий софт, нужно пофиксить некоторые моменты или можем рассмотреть ваши варианты решения вопроса. ТЗ прикрепил

    Закрыт
    год назад
  • $350

    Требуется аналитик-проектировщик для разработки технического задания и проектной документации для проведения тендера. Задача состоит из двух частей: 1) собрать и описать требования (при взаимодействии с соответствующими ответственными специалистами, всего их 2 человека - владелец бизнес-процесса, ...

    Закрыт
    год назад