- Saved searches
- Use saved searches to filter your results more quickly
- GlebCoder/RomanArabicCalculator
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- olegrewko / RomanArabianCalc.java
- Saved searches
- Use saved searches to filter your results more quickly
- DmitriiDerendyaev/stringCalc
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Saved searches
- Use saved searches to filter your results more quickly
- License
- rabestro/roman-arabic-calculator
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Calculator for arabic and roman numbers in java
GlebCoder/RomanArabicCalculator
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
The project is a test task for a coding school. And this is my first program in java.
Calculator can accept arabic nubers from 1 to 10 and roman numerals from I to X.
Expected input format: «1+10» or «III-II».
To try a program MyCalculatorSolution.java has to be run.
About
Calculator for arabic and roman numbers in java
olegrewko / RomanArabianCalc.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package calcRA ; |
import java . util . InputMismatchException ; |
import java . util . Scanner ; |
public class RomanArabianCalc |
static Scanner scanner = new Scanner ( System . in ); |
static int number1 , number2 ; |
static char operation ; |
static int result ; |
public static void main ( String [] args ) |
System . out . println ( «Введите выражение [2+2] или два римских числа от I до X:[V+V] + Enter » ); |
// Считываем строку userInput которую ввёл пользователь |
String userInput = scanner . nextLine (); |
// Создаём пустой символьный массив длиной 10 символов: under_char |
char [] under_char = new char [ 10 ]; |
// Заполняем символьный массив символами строки которую ввел пользователь и по ходу ловим знак операции |
for ( int i = 0 ; i < userInput . length (); i ++) |
under_char [ i ] = userInput . charAt ( i ); |
if ( under_char [ i ] == ‘+’ ) |
operation = ‘+’ ; |
> |
if ( under_char [ i ] == ‘-‘ ) |
operation = ‘-‘ ; |
> |
if ( under_char [ i ] == ‘*’ ) |
operation = ‘*’ ; |
> |
if ( under_char [ i ] == ‘/’ ) |
operation = ‘/’ ; |
> |
> |
String under_charString = String . valueOf ( under_char ); |
String [] blacks = under_charString . split ( «[+-/*]» ); |
String stable00 = blacks [ 0 ]; |
String stable01 = blacks [ 1 ]; |
String string03 = stable01 . trim (); |
number1 = romanToNumber ( stable00 ); |
number2 = romanToNumber ( string03 ); |
if ( number1 < 0 && number2 < 0 ) |
result = 0 ; |
> else |
result = calculated ( number1 , number2 , operation ); |
System . out . println ( «—Результат для римских цифр—-» ); |
String resultRoman = convertNumToRoman ( result ); |
System . out . println ( stable00 + » » + operation + » » + string03 + » = » + resultRoman ); |
> |
number1 = Integer . parseInt ( stable00 ); |
number2 = Integer . parseInt ( string03 ); |
result = calculated ( number1 , number2 , operation ); |
System . out . println ( «—Результат для арабских цифр—-» ); |
System . out . println ( number1 + » » + operation + » » + number2 + » = » + result ); |
> |
private static String convertNumToRoman ( int numArabian ) |
String [] roman = < "O" , "I" , "II" , "III" , "IV" , "V" , "VI" , "VII" , "VIII" , "IX" , "X" , "XI" , "XII" , "XIII" , "XIV" , "XV" , "XVI" , "XVII" , "XVIII" , "XIX" , "XX" , |
«XXI» , «XXII» , «XXIII» , «XXIV» , «XXV» , «XXVI» , «XXVII» , «XXVIII» , «XXIX» , «XXX» , «XXXI» , «XXXII» , «XXXIII» , «XXXIV» , «XXXV» , «XXXVI» , «XXXVII» , «XXXVIII» , «XXXIX» , «XL» , |
«XLI» , «XLII» , «XLIII» , «XLIV» , «XLV» , «XLVI» , «XLVII» , «XLVIII» , «XLIX» , «L» , «LI» , «LII» , «LIII» , «LIV» , «LV» , «LVI» , «LVII» , «LVIII» , «LIX» , «LX» , |
«LXI» , «LXII» , «LXIII» , «LXIV» , «LXV» , «LXVI» , «LXVII» , «LXVIII» , «LXIX» , «LXX» , |
«LXXI» , «LXXII» , «LXXIII» , «LXXIV» , «LXXV» , «LXXVI» , «LXXVII» , «LXXVIII» , «LXXIX» , «LXXX» , |
«LXXXI» , «LXXXII» , «LXXXIII» , «LXXXIV» , «LXXXV» , «LXXXVI» , «LXXXVII» , «LXXXVIII» , «LXXXIX» , «XC» , |
«XCI» , «XCII» , «XCIII» , «XCIV» , «XCV» , «XCVI» , «XCVII» , «XCVIII» , «XCIX» , «C» |
>; |
final String s = roman [ numArabian ]; |
return s ; |
> |
private static int romanToNumber ( String roman ) |
try |
if ( roman . equals ( «I» )) |
return 1 ; |
> else if ( roman . equals ( «II» )) |
return 2 ; |
> else if ( roman . equals ( «III» )) |
return 3 ; |
> else if ( roman . equals ( «IV» )) |
return 4 ; |
> else if ( roman . equals ( «V» )) |
return 5 ; |
> else if ( roman . equals ( «VI» )) |
return 6 ; |
> else if ( roman . equals ( «VII» )) |
return 7 ; |
> else if ( roman . equals ( «VIII» )) |
return 8 ; |
> else if ( roman . equals ( «IX» )) |
return 9 ; |
> else if ( roman . equals ( «X» )) |
return 10 ; |
> |
> catch ( InputMismatchException e ) |
throw new InputMismatchException ( «Неверный формат данных» ); |
> |
return — 1 ; |
> |
public static int calculated ( int num1 , int num2 , char op ) |
int result = 0 ; |
switch ( op ) |
case ‘+’ : |
result = num1 + num2 ; |
break ; |
case ‘-‘ : |
result = num1 — num2 ; |
break ; |
case ‘*’ : |
result = num1 * num2 ; |
break ; |
case ‘/’ : |
try |
result = num1 / num2 ; |
> catch ( ArithmeticException | InputMismatchException e ) |
System . out . println ( «Exception : » + e ); |
System . out . println ( «Only integer non-zero parameters allowed» ); |
break ; |
> |
break ; |
default : |
throw new IllegalArgumentException ( «Не верный знак операции» ); |
> |
return result ; |
> |
> |
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
DmitriiDerendyaev/stringCalc
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Калькуятор римских и арабских чисел на языке программирония Java
Создай консольное приложение “Калькулятор”. Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции проводимые между ними и выводить в консоль результат их выполнения. Реализуй класс 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 //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
This code is a proof of concept. The calculator can work with both Arabic (1,2,3,4,5 . ) and Roman (I, II, III, IV, V . ) numbers.
License
rabestro/roman-arabic-calculator
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This code is proof of concept. It checks possibility of validation of user input by Scanner class.
- The calculator can perform operations of addition, subtraction, multiplication and division with two numbers: a + b, a — b, a * b, a / b. Data is entered in one line.
- The calculator can work with both Arabic (1,2,3,4,5 . ) and Roman (I, II, III, IV, V . ) numbers.
- The calculator must accept numbers from 1 to 10 inclusively. At the output, the numbers are not limited in size and can be any.
- The calculator can only work with whole numbers.
- The calculator can only work with Arabic or Roman numerals at the same time, when the user enters a line like 3 + II, the calculator should throw an exception and stop working.
- When the user enters inappropriate numbers, the application throws an exception and exits.
- When the user enters a string that does not match one of the above arithmetic operations, the application throws an exception and exits.
The main idea is to validate user input using next(String pattern) method of Scanner class. It allows to throw InputMismatchException immediately after incorrect user input. To fulfill the condition for the simultaneous input of either Arabic or Roman numbers, we determine the mode by the first number and use the appropriate pattern for the second number.
About
This code is a proof of concept. The calculator can work with both Arabic (1,2,3,4,5 . ) and Roman (I, II, III, IV, V . ) numbers.