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.Dismiss alert
Выполняется проверка на правильность (все ли скобки закрыты, не идут ли несколько операторов или чисел или унарных знаков подряд и т.д.)
Выражение проверяется на наличие скобок по краям и, если они есть, наличие унарного знака перед ними.
Выражение разбивается на подслагаемые знаками < + , - >, после вычисления которых возвращается вычисленный результат.
Для каждого подслагаемого < + , - > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе выражение разбивается на подмножители знаками < // , / , * , % >, после вычисления которых возвращается вычисленный результат.
Для каждого подмножителя < // , / , * , % > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе выражение разбивается на подмножители знаком < ** >, после вычисления которых возвращается вычисленный результат.
Для каждого подмножителя < ** > выполняется п. 3. Если скобки присутствуют, выполняется п. 4 и так далее, иначе возвращается число с учетом его знака < ~ , $ >.
В момент, когда количество выполняемых вычислений (рекурсий) становится равным 1, это означает, что полученное в результате вычислений число является финальным.
Для финального числа определяется его знак < ~ , $ > и ответ возвращается пользователю.
Как пользоваться
Запустите программу (python -m src.main)
Введите математическое выражение
Для выхода нажмите Ctrl + C
Допущения
Допускается использование унарных знаков < ~ , $ > сразу после обычных знаков без использования скобок < + , - , / , * , // , % , ** >.
Например: 2 + $3 - ~2 корректное выражение (трактуется как 2 + 3 - (-2))
Не допускается использование нескольких унарных знаков < ~ , $ > перед числом.
Например: 2 + $$3 - ~~2 некорректное выражение
Не допускается использование сокращенной записи умножения без знака.
Например: 2 * (3 * 2) корректное выражение
2(3 * 2) некорректное выражение
Допускается возведение степени в степень без использования скобок.
Например: 2 ** ~2 ** ~2 корректное выражение (трактуется как 2 ** (~2 ** (~2)))