Проверка пользовательского ввода математического уравнения - PullRequest
0 голосов
/ 06 марта 2019

У меня есть задача проверить математическое уравнение, например: x ^ 3 + (2x-23 -> необходимо сообщить об ошибке и исправить ошибку в x ^ 3 + (2 * x-23). ​​

Мне нужна помощь с правильной логикой, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 06 марта 2019

Вам нужно реализовать простой парсер для преобразования строки уравнения в AST.

Первый шаг - лексический анализ, преобразование строки уравнения в список токенов.

Следующим шагом является анализ грамматики, вы можете написать для этого нисходящий анализатор. Но перед этим лучше правильно определить формальную грамматику, используя такие обозначения, как BNF.

(Если вам нужно только проверить это, а не вычислять конечный результат, лучше использовать стороннюю библиотеку.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...