Giter Club home page Giter Club logo

golang's Introduction

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

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

Ввод данных можно осуществлять в любом регистре, ставить сколько угодно пробелов между операндами и математической оперцией 
В данной программе были проведены тесты:
-на ограничения операнды должны находится в пределах [1,10]
  ввод: 11 -4
  вывод: Вывод ошибки, Числа должны быть в пределах от 1 до 10
  ii -xii
  Вывод ошибки, Числа должны быть в пределах от 1 до 10
-на отрицательные числа, причем результат для римских чисел не должен быть отрицательным.

  ввод: 4   -    8
  вывод: -4
  
  ввод: iv   -  viii
  вывод: Вывод ошибки, так как в римской системе нет отрицательных чисел

-результат деление должно быть целым числом и указать на исключение для римского числа

  ввод:    iii/iv
  вывод:  0
         Исключение, так как результат от деления меньше 1 для римской системе
  ввод:	 8  /3      
  вывод:   2
- неправильный ввод данных
  
  ввод: 3 -ii
  вывод: Вывод ошибки, так как используются одновременно разные системы счисления.
 
-количество операций больше чем одна
  ввод:  iii * i +v    
  вывод: Вывод ошибки, так как формат математической операции не удовлетворяет заданию — два операнда и один оператор (+, -, /, *)

golang's People

Contributors

alexbragin1 avatar alexb-17 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.