Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №1 (M1)

Как программа работает

  1. Пользователь вводит математическое выражение
  2. Выполняется проверка на правильность (все ли скобки закрыты, не идут ли несколько операторов или чисел или унарных знаков подряд и т.д.)
  3. Выражение проверяется на наличие скобок по краям и, если они есть, наличие унарного знака перед ними.
  4. Выражение разбивается на подслагаемые знаками < + , - >, после вычисления которых возвращается вычисленный результат.
  5. Для каждого подслагаемого < + , - > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе выражение разбивается на подмножители знаками < // , / , * , % >, после вычисления которых возвращается вычисленный результат.
  6. Для каждого подмножителя < // , / , * , % > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе выражение разбивается на подмножители знаком < ** >, после вычисления которых возвращается вычисленный результат.
  7. Для каждого подмножителя < ** > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе возвращается число с учетом его знака < ~ , $ >.
  8. В момент, когда количество выполняемых вычислений (рекурсий) становится равным 1, это означает, что полученное в результате вычислений число является финальным.
  9. Для финального числа определяется его знак < ~ , $ > и ответ возвращается пользователю.

Как пользоваться

  1. Запустите программу (python -m src.main)
  2. Введите математическое выражение
  3. Для выхода нажмите Ctrl + C

Допущения

  1. Допускается использование унарных знаков < ~ , $ > сразу после обычных знаков без использования скобок < + , - , / , * , // , % , ** >. Например: 2 + $3 - ~2 корректное выражение (трактуется как 2 + 3 - (-2))
  2. Не допускается использование нескольких унарных знаков < ~ , $ > перед числом. Например: 2 + $$3 - ~~2 некорректное выражение
  3. Не допускается использование сокращенной записи умножения без знака. Например: 2 * (3 * 2) корректное выражение 2(3 * 2) некорректное выражение
  4. Допускается возведение степени в степень без использования скобок. Например: 2 ** ~2 ** ~2 корректное выражение (трактуется как 2 ** (~2 ** (~2)))

About

Program for solving math expressions

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages