Como Avaliar Expressões infixo

Há três maneiras de escrever expressões aritméticas : prefixo, infixo e postfix. Se F é a função aritmética que combina o número de A e B, notação de prefixo seria escrito FAB , notação infixa seria escrito AFB e notação postfix seria escrito ABF . Tradicionalmente , usamos infixado para aritmética , de modo que escrever 3 + 5 + 3 em vez de 5 como seria no prefixo ou 3 5 + , uma vez que estaria no sufixo . Cada sistema tem as suas vantagens e desvantagens . Instruções

1

Comece avaliação em uma expressão fundamental – não pode haver mais do que um destes. Será parecido com E1 E2 F onde F é um operador de função – como +, -, * ou /- e E1 e E2 são números ou outra expressão infixa . Se E1 e E2 são ambos números , aplique o operador para obter um número . Continue fazendo isso até que haja apenas um número a esquerda; este número é a avaliação da expressão infixa originais. Por exemplo, se você escolher + como expressão central em 3 + 4 * 5, que é um número de função -expressão. Devemos avaliar 4 * 5 primeiro. Este é o formulário número função de número para que possamos avaliá-lo : . 4 * 5 = 20 Agora, a expressão original é 3 + 20, que é 23

2

expressões Parenthesize que podem ser . ambígua . Por exemplo, a expressão infixa 3 + 4-5 dá duas respostas diferentes , dependendo se a adição ou a subtração é realizada pela primeira vez. Parênteses vai desambiguizar o processo : ( 3 + 4 ) – 5 = 2 e 3 + ( 4-5 ) = -1 e não existe ambiguidade nos dois casos. A regra para avaliar expressões infixas com parênteses é trabalhar a partir das inter- a maioria dos parênteses exteriores. Por exemplo, 3 +. ((4 – 2) * 5) = 3 + (2 * 5) = 3 + 10 = 13

3

Reduzir o número de parênteses e simplificar expressões usando um sistema de ordem de precedência . O coração da regra é que a multiplicação ea divisão são maior precedência ( se avaliada em primeiro lugar ) e que, se dois operadores são o mesmo nível de precedência , de avaliação procede da esquerda para a direita. Usando estas regras, 3 + 4 * 5 = 23 , porque a multiplicação é feito primeiro – é maior precedência . 3 + 4-5 = 2 porque a adição ea subtração são a mesma precedência que o operador esquerdo é realizada pela primeira vez

.

Deixe um comentário