воскресенье, 10 апреля 2011 г.

Вычисление выражения из строки

   Попалась интересная задача. Суть в следующем: есть выражение в виде строки что-то вроде "5*(-1)/2.5+2*2+(+1-3.0)". Нужно получить ответ. Естественно, программа должна быть готова к любому выражению. Чтобы не слишком усложнять задачу, будем считать, что выражение всегда корректно. То есть "5*" введено в программу не будет. Сложность в другом (на самом деле одновременно и подсказка). Нужно, чтобы приложение было абсолютно расширяемым. Сюда относится: возможность быстро добавить новую операцию (остаток от деления, например), возможность изменить саму операцию, не изменяя ее отображения ("хочу, чтобы + делил, а / складывал").