|
|
|
| Вот мне надо сделать прогу, которая может посчитать любое выражение (или почти любое).
т.е. например мы вводим 5*(4-8*(9+56)/7), а прога дает ответ. Я сделал 3 функции:
1. разбить на слагаемые. для каждого слагаемого вызвать 2 функцию. далее посчитать. возвратить результат.
2. разбить на множители. для каждого третью функцию. далее посчитать. возвратить результат.
3. если просто число, возвратить число, если скобка, то для скобки вызвать первую функцию и возвратить ее результат.
Вот такая нехитрая рекурсия. (сам придумал!) Но говорят есть нерекурсивные алгоритмы, работающие лучше, какой-то с тремя стеками (дейкстры), но никто мне не говорит (лень им), как это делать. Может вы расскажете? | |
|
|