Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Считаем выражение.
 
 автор: alex19921992   (18.02.2007 в 06:26)   письмо автору
 
 

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

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

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

  Ответить  
 
 автор: cheops   (18.02.2007 в 13:17)   письмо автору
 
   для: alex19921992   (18.02.2007 в 06:26)
 

Лучше пользуйтесь рекурсией - ошибок будет меньше и нагляднее.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования