Отказ от ответственности: этот ответ действителен только в том случае, если вы намереваетесь сами делать это. Если вы ищете быстрый / эффективный способ проведения такого разбора, лучше использовать какой-либо инструмент / библиотеку, как предлагается в других ответах ...
У вас есть программа, которая преобразует нотацию infix в постфиксная нотация. Например:
infix: ((21 + 3) / 4)
blockquote>должно выводить что-то вроде:
postfix: 21 3 + 4 /
blockquote>Теперь, если вы хотите оценить это выражение, нотация постфикса довольно проста: при чтении токена слева направо вам просто нужно стекать операнды (21, 3, ...), пока не будет найден оператор (+, /). Затем вы набираете стек, применяете оператор и складываете результат.
- init stack: [], expr: 21 3 + 4 /
- read
21
, stack it: stack: [21], expr: 3 + 4 /- читать
3
, стек: стек: [21 3], expr: + 4 /- читать
+
, pop3
и21
, добавить и вывести результат стека24
: [24], expr: 4 /- прочитать
4
, уложить стек: [24 4], expr: /- читать
/
, pop4
и24
, делить и выводить результат6
stack: [6], expr:.Когда токена больше нет, стек содержит окончательный результат.
Zam3d is был отличным инструментом для преобразования 3D-моделей в Xaml, но похоже, что Electric Rain больше не функционирует, вы можете найти где-нибудь копию, поискав его в Google . Я очень рекомендую книгу Петцольда 3D-программирование для Windows . В Интернете также есть масса учебных пособий, я бы нашел в Google некоторые современные.
Вы можете скачать пробную версию 3dsmax и преобразовать вашу модель Xaml-экспортер для 3D Studio Max этот инструмент мне очень помогает.