Римско арабский калькулятор java

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.

Читайте также:  Regexp php любой символ

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 или другие)

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

  1. 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.
  2. The calculator can work with both Arabic (1,2,3,4,5 . ) and Roman (I, II, III, IV, V . ) numbers.
  3. The calculator must accept numbers from 1 to 10 inclusively. At the output, the numbers are not limited in size and can be any.
  4. The calculator can only work with whole numbers.
  5. 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.
  6. When the user enters inappropriate numbers, the application throws an exception and exits.
  7. 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.

Источник

Оцените статью