Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: alex19921992   (18.02.2007 в 06:26)
Вот мне надо сделать прогу, которая может посчитать любое выражение (или почти любое).
т.е. например мы вводим 5*(4-8*(9+56)/7), а прога дает ответ. Я сделал 3 функции:

1. разбить на слагаемые. для каждого слагаемого вызвать 2 функцию. далее посчитать. возвратить результат.
2. разбить на множители. для каждого третью функцию. далее посчитать. возвратить результат.
3. если просто число, возвратить число, если скобка, то для скобки вызвать первую функцию и возвратить ее результат.

Вот такая нехитрая рекурсия. (сам придумал!) Но говорят есть нерекурсивные алгоритмы, работающие лучше, какой-то с тремя стеками (дейкстры), но никто мне не говорит (лень им), как это делать. Может вы расскажете?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: