Задача: программа "Строковый калькулятор"

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

Требования:

  • Калькулятор умеет выполнять операции сложения строк, вычитания строки из строки, умножения строки на число и деления строки на число: "a" + "b", "a" - "b", "a" * b, "a" / b. Данные передаются в одну строку(смотрите пример)! Решения, в которых каждая строка, число и арифметическая операция передаются с новой строки считаются неверными.
  • Значения строк передаваемых в выражении выделяются двойными кавычками.
  • Результатом сложения двух строк, является строка состоящая из переданных.
  • Результатом деления строки на число n, является строка в n раз короче исходной (смотрите пример).
  • Результатом умножения строки на число n, является строка, в которой переданная строка повторяется ровно n раз.
  • Результатом вычитания строки из строки, является строка, в которой удалена переданная подстрока или сама исходная строка, если в нее нет вхождения вычитаемой строки (смотрите пример).
  • Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более. И строки длинной не более 10 символов. Если строка, полученная в результате работы приложения длине 40 символов, то в выводе после 40 символа должны стоять три точки (...)
  • Калькулятор умеет работать только с целыми числами.
  • Первым аргументом выражения, подаваемого на вход, должна быть строка, при вводе пользователем выражения вроде 3 + "hello", калькулятор должен выбросить исключение и прекратить свою работу.
  • При вводе пользователем неподходящих чисел, строк или неподдерживаемых операций (например, деление строки на строку) приложение выбрасывает исключение и завершает свою работу.
  • При вводе пользователем выражения, не соответствующего одной из вышеописанных арифметических операций, приложение выбрасывает исключение и завершает свою работу.
Пример работы программы:

Input:"100" + "500"

Output:"100500"

Input:"Hi World!" - "World!"

Output:"Hi "

Input:"Bye-bye!" - "World!"

Output:"Bye-bye!"

Input:"Java" * 5

Output:"JavaJavaJavaJavaJava"

Input:"Example!!!" / 3

Output:"Exa"

Принципы оценки работы: Обратите внимание на принципы ООП, постарайтесь разбить программу на логические классы. Решения, в которых весь код программы находится в одном классе будут низко оценены. Продемонстрируйте своё умение в работе с разными синтаксическими конструкциями, не забудьте про исключительные ситуации, при которых выполнение программы невозможно из-за некорректных входных данных.

4 года назад
Ravo
Иван 
25 лет
4 года в сервисе
Был
4 года назад

Заявки фрилансеров

Нурсултан
 
31 год
4 года в сервисе
Был
4 года назад
4 года назад
Мария
 
25 лет
4 года в сервисе
Был
2 года назад
3 отзыва
4 года назад
Николай
 
34 года
4 года в сервисе
Был
4 года назад
7 отзывов(-5)
4 года назад
  • Похожие заказы

  • Требуется разработчик для создания web-приложения на Yii2 и Vue.js. Приложение будет получать данные из API и выводить их на фронт после фильтрации, а также в Telegram. В коде много комментариев от предыдущего разработчика.

    Закрыт
    3 года назад
  • Ищется специалист для верстки сайта, с акцентом на сложные анимационные эффекты. Важно уделить внимание деталям реализации анимации. Если выполнение задачи вызывает сложности, лучше не отправлять заявку.

    Закрыт
    4 года назад
  • Требуется создать Telegram-бота, который будет автоматически добавлять кнопку к новым записям в канале. Кнопка должна перенаправлять пользователей в другой канал. Необходимы навыки веб-программирования для реализации функционала.

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

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

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

    Задача заключается в натягивании готовой вёрстки на проект, реализованный на Python 2.7 с использованием Django. В процессе возможно обновление нескольких модулей. Оплата по факту готовности, возможен небольшой аванс после выполнения 50% работы. Бюджет составляет 150$.

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

    Закрыт
    4 года назад
  • Необходимо реализовать отправку данных с формы на сайте WP в AmoCrm. При заполнении клиентом формы должны создаваться новые лиды с введенной информацией. Требуется знание веб-программирования и API AmoCrm для корректной интеграции.

    Завершен
    4 года назад
  • Задача заключается в полном копировании лендинга с платного конструктора для его размещения на собственном хостинге. Необходимо обеспечить адаптацию и перенос всего функционала, чтобы избежать дальнейших затрат на сервисы. Важно сохранить оригинальный дизайн и структуру сайта.

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

    Ищется разработчик для создания веб-сайта на React.js. Задача включает реализацию дизайна по макетам в Figma и следование техническому заданию. Ожидается качественная работа с соблюдением сроков.

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