Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Работа со строкой


Автор: Vaz007 5.5.2013, 18:36
Добрый вечер. 
Имею строку в которой записаны булевы переменные. Нужно как-то осуществить операцию умножения(но могут присутствовать члены между которыми стоит сложение), пока не могу представить себе как это возможно. 
ПРИМЕР:
Код

X1 *X2 *( ! X1 V ! X2) ; // В результате получается 0+0 = 0; !X это отрицание 

Как лучше записать выражение такого типа в строку, и осуществить с ним операцию произведения/сложения?

Автор: fish9370 6.5.2013, 10:20
вот это прочти:

http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F


потом, в Си умножение это операция &, а сложение |

соответственно алгоритм:

1) разбиваешь с помощью польской записи на составляющие, строишь дерево
2) выявляешь операцию из подвыражения, и выполняешь ее, все это делаешь рекурсивно, пока не обойдешь все дерево

Автор: Vaz007 10.5.2013, 21:05
спасибо большое за ответ))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)