Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Syntaxbaum

226  
Stepashka2015 постоялец05.11.17 11:44
NEW 05.11.17 11:44 

добрый день! очень нужна помощь по учебе - не могу понять как составлять Syntaxbaum - пример выражение (х+х)*х+х выходит дерево как на картинке, но я не понимаю как оно создается. Нужно начинать анализировать выражение справа с х и идти влево до последней скобки? я так постоянно захожу в тупик, т.е мне не хватает ответвлений или получаются лишние знаки (child nodes).

Я поняла что "листочки" составляют выражение, но не пойму как я могу нарисовать дерево корректно. Надеюсь на помощь, спасибо!


#1 
Murr патриот05.11.17 13:27
Murr
05.11.17 13:27 
в ответ Stepashka2015 05.11.17 11:44

А обозначения для А, Т и Ф будем додумывать?


В остальном - все просто - для вычисления выражения нужно обходить дерево от вершины и по самым левым веткам. Вот так его и строить.


Ну можно еще подумать об том какой автомат нужен для распознавания заданного набора операций. Для полного набора операций в С++ у меня получался 16-позиционный автомат...

#2 
Stepashka2015 постоялец05.11.17 14:21
NEW 05.11.17 14:21 
в ответ Murr 05.11.17 13:27

пардон, вот грамматика


я начала с самой левой ветки и дошла до (х и потом у меня затык - мне нужно * а у меня выходит Т. см фото


#3 
Stepashka2015 постоялец05.11.17 14:27
NEW 05.11.17 14:27 
в ответ Stepashka2015 05.11.17 14:21

ааа я поняла)) из F то получается (А) а не просто скобка)) чуть голову не сломала мдэ)) спасибо за ответ!!

#4