Показать сообщение отдельно
Старый 24.07.2008, 08:32   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Калькулятор

Я бы делал так. Допустим, юзер ввел строку 2+2*2 режешь её и помещаеш в массив (лучше использовать вектор, реализованный в Lib_vdata). У тебя получается примерно такой массив:

2
+
2
*
2

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

2
+
4

Потом пробегаешься по массиву и ищешь и вычисляешь все деления, потом сложения и вычитания. В итоге у тебя и получится 6.
Аналогично вычисляются скобки, другие алгбраические функции и т.п.
(Offline)
 
Ответить с цитированием