Как разрабатывать калькуляторы, считающие такие выражения, как 2+4*(4-3)?

Хотелось бы узнать, мб есть какая-нибудь литературка про такие алгоритмы, или мануалы, которые позволяют понять, как делать такие вещи, как такие калькуляторы. Язык любой.
  • Вопрос задан
  • 4070 просмотров
Решения вопроса 3
@Codebaker
Всё умею, всё могу!
Удивляюсь комментариям! Как это не встречали литературы, если есть фундаментальные труды на эту тему. Кроме того на Хабре полно топиков (даю три первых, по тегам можно раскрутить все остальные):
habrahabr.ru/post/140058
habrahabr.ru/post/108062
habrahabr.ru/post/133780
Ответ написан
Комментировать
difiso
@difiso
В параллельной вселенной я космонавт
Если вы пишите калькулятор, т.е. на входе именно выражение для счета, то лучше трансформировать выражение в обратную/прямую польскую нотацию. алгоритмов полно на разных языках, плюс при переводе сразу проверяется корректность выражения.
Ответ написан
Комментировать
@AMurkin
вот же habrahabr.ru/post/100869 на хабре даже есть
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
SvetlyiAkaPro
@SvetlyiAkaPro Автор вопроса
а есть книги с алгоритмами, правилами их построения, что-нибудь такое?
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
Вы можете использовать генератор парсеров, чтобы создать AST-дерево , а потом произвести последовательный обход его с вычислением выражения.

Вот пример такого генератора на JS.
Вот пример калькулятора.

А вот тут рабочий порт генератора на PHP cо сложным примером.
Ответ написан
Комментировать
JS (никогда не используйте!!)
alert(eval(prompt('Введите выражение')));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы