Обратная польская нотация
guzel09
Дата: 07.08.2018 13:03:29
Здравствуйте.
У меня задача такая. Мне необходимо из "стековой" формы записи ОПН сделать форму записи обычной математической формулы не решая ее.
Например: На входе: abc++df+- На выходе: (a+b+c)-(d+f)
наверное здесь просто нужно проанализировать строку?
Может мне кто-нибудь подскажет где я могу об этом прочитать. Все пишут в основном о калькуляторе ОПН...
Eolt
Дата: 07.08.2018 13:23:01
В abc++df+- уже нет информации о скобках, поэтому получится a+b+c-d+f
guzel09
Дата: 07.08.2018 13:27:03
Eolt, но результаты этих форму в вашем случае будут разными. А мне надо чтобы человек увидел правильную формулу со скобками. Если два оператора в ОПЗ стоят рядом это говорит о участии скобок в выражении.
Dima T
Дата: 07.08.2018 13:27:14
guzel09 |
---|
из "стековой" формы записи ОПН сделать форму записи обычной математической формулы не решая ее. Например: На входе: abc++df+- На выходе: (a+b+c)-(d+f) |
Точно так же как и вычисление, но вместо выполнения операций писать результат в строку.
guzel09
Дата: 07.08.2018 13:35:01
Dima T, пока не поняла как, но предполагаю что результат будет как раз таким a+b+c-d+f, а нужно (a+b+c)-(d+f). Хотя могу ошибаться нужно попробовать. :)
Dima T
Дата: 07.08.2018 13:42:55
guzel09 |
---|
Dima T, пока не поняла как, но предполагаю что результат будет как раз таким a+b+c-d+f, а нужно (a+b+c)-(d+f). Хотя могу ошибаться нужно попробовать. :) |
Если так устроит, то просто оборачивай каждую операцию в скобки
(((a+b)+c)-(d+f))
guzel09
Дата: 07.08.2018 13:51:34
Dima T,
так устроит при том что в той базе из которой я получаю формулу ОПЗ пишется не + + +, а Add3 по сути один оператор. Спасибо.