используйте C ++ для создания калькулятора - PullRequest
0 голосов
/ 06 октября 2019

Я хочу использовать C ++ для создания калькулятора, чтобы я мог ввести выражение и вычислить результат.

Например,

input

(5.2+4)*ln3.4+sin3

output

11.39985

Проблема в том, что я не знаю, как отделить число и оператор от строки. По длине операнды и числа разные. Есть ли хороший способ?

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Это на самом деле гораздо более сложная проблема, чем кажется на первый взгляд, и я говорю это по опыту.

Если вам нужен пример того, как сделать это с нуля, вот вопрос, гдеЯ опубликовал пример, над которым я работал . Он, конечно, не полный, но содержит ссылки на замечательную статью по Java (на самом деле, возможно, лучшую статью) о синтаксическом анализе Pratt, что, на мой взгляд, является лучшим способом для анализа выражений. Мой вопрос был о моей попытке перенести найденный там код Java на C ++. Вы можете увидеть проблему, с которой я столкнулся.

Вам также необходимо знать некоторые теории о лексерах и научиться создавать токенов , которые я не делаю. Спросите об этом.

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

0 голосов
/ 06 октября 2019

Используйте библиотеку, такую ​​как exprtk .

Я собираюсь предположить, что вы полный нуб, и это заставляет меня советовать вам всегда Google для библиотеки, которая решает вашипроблема.

...