Автомат для прохода арифметического выражения в порядке выполнения т.е. вначале умножение потом сложение.
читать дальше
Виды ребер:
пунктирное ребро - рекурсивный вызов этого автомата с самого начала ( ставится скобка )
волнистое ребро - возврат из рекурсивного вызова
[(..)] или () - считается что было считано подвыражение ( в скобках "(" )
Узлы:
ARG 1, ARG 2 - читаем число
A - считано одно число, далее обединяем его с считанным рекурсивно продолжением выражения
B - считано выражение из 2ух и более чисел
ARG 1.2 - при умножении мы объединяем выражение со считанным аргументом и возвращаемся(рекурсивно) в B
По сути автомат расставляет скобки при проходе по выражению.
Пример: 4+4*4+2
Будет: ( 4+( (4*4) +2 ) )
Пример: 4*4+3*5+2
Будет: ( (4*4) + ( (3*3) + 2 ) )
Пример: 3+3*4*2+5
Будет: ( 3+ ( ( 3*4*2 ) + 5) )
Оное потребовалось для проверки на сколько такое решение задачи облегчает ее программную реализацию. В итоге реально помогает т.к. не тратится время на воссоздания этой (выше) картины (т.е. всех взаимосвязей) в голове ))
+ легче чегото изменять на бумаге потом в исходнике т.к. сразу видно на чего она влияет и вобще как это сделать ))
Автомат для прохода арифметического выражения в порядке выполнения т.е. вначале умножение потом сложение.
читать дальше
читать дальше