Diagrama teórico
A ordem de resolução de uma expressão, ainda sem levar em conta os parênteses, obedece a um conjunto de prioridades, mostrado a seguir:Nossas explicações vão ser dadas em torno do exemplo fornecido no primeiro post (90*2-80*3).
Procedimento teórico
Os passos para o procedimento equate resolver a expressão estão esquematizados abaixo:Início
O equate procura o operador de exponenciação "^".Não acha.
Passo 1
O equate procura o operador de multiplicação "*" e acha.O equate utiliza o operador como referencial e extrai o lado esquerdo (V03) e o lado direito (V04).
O equate efetua a multiplicação e armazena o resultado no lado esquerdo (V03).
O equate zera o lado direito (V04).
Agora a expressão resultante é V01*V02+V03.
Passo 2
O equate procura o operador de multiplicação "*" e acha.O equate utiliza o operador como referencial e extrai o lado esquerdo (V01) e o lado direito (V02).
O equate efetua a multiplicação e armazena o resultado no lado esquerdo (V01).
O equate zera o lado direito (V02).
Agora a expressão resultante é V01+V03.
Passo 3
O equate procura o operador de adição "+" e acha.O equate utiliza o operador como referencial e extrai o lado esquerdo (V01) e o lado direito (V03).
O equate efetua a adição e armazena o resultado no lado esquerdo (V01).
Agora a expressão resultante é V01.
O Resultado final é o conteúdo da variável de array V01.
No próximo post explicaremos o equate (resolução da expressão).
Conclusão
Neste tipo de procedimento de resolução de expressões não temos as ineficientes e complexas etapas de colocação da equação em árvores hierárquicas. As próprias estruturas que armazenam as variáveis vão sendo resumidas, até que reste apenas o elemento que atende pelo índice V01, onde fica o resultado final.O rastreamento dos ramos das árvores binárias de expressões é algo mais elegível para o ladop da elegância do que da praticidade.
Nenhum comentário:
Postar um comentário