Conversor de notação polonesa

Converta expressões entre notação infixa, polonesa prefixa e polonesa reversa pós-fixa com um resultado imediato e legível.

Converter a notação da expressão
Insira uma expressão e escolha a notação de origem e de destino.

Sobre a conversão de notação polonesa

A notação polonesa é uma forma de escrever expressões matemáticas e lógicas sem depender da posição habitual dos operadores entre os valores. Na notação infixa comum, o operador aparece entre seus operandos, como em A + B. A notação prefixa o coloca primeiro, formando + A B; a pós-fixa o coloca no final, formando A B +. A forma prefixa costuma ser chamada de notação polonesa, e a pós-fixa, de notação polonesa reversa ou RPN. Como a ordem do operador e dos operandos é inequívoca, essas expressões geralmente dispensam parênteses. Este conversor faz quatro transformações comuns: infixa para prefixa, infixa para pós-fixa, prefixa para infixa e pós-fixa para infixa. Na entrada infixa, reconhece identificadores, números decimais, parênteses e operadores de adição, subtração, multiplicação, divisão e potência. Aplica as regras padrão de precedência: potências primeiro, depois multiplicações e divisões, por fim adições e subtrações. Parênteses podem alterar a ordem. A potência é associativa à direita, portanto a ^ b ^ c significa a ^ (b ^ c). As conversões a partir da notação infixa usam o algoritmo shunting-yard para ordenar os tokens por precedência. Uma pilha guarda temporariamente os operadores enquanto os valores vão direto para a saída. A saída prefixa é então montada a partir da sequência pós-fixa gerada. As conversões de prefixa ou pós-fixa para infixa usam uma pilha de expressões parciais. Ao encontrar um operador, os dois operandos correspondentes são retirados, combinados, envolvidos em parênteses e devolvidos à pilha. O último item é a expressão infixa completa. Os espaços importam na entrada prefixa e pós-fixa porque identificam cada operando e operador. Escreva * + A B C em vez de *+ABC. Expressões infixas podem ter ou não espaços, pois parênteses e caracteres de operadores separam os tokens. O conversor preserva nomes de variáveis e valores numéricos, mas acrescenta espaços e parênteses para facilitar a conferência. A conversão de notação é útil no estudo de árvores de expressão, análise sintática de compiladores, máquinas de pilha, calculadoras e estruturas de dados. Expressões pós-fixas podem ser avaliadas da esquerda para a direita com uma pilha simples, enquanto as prefixas podem ser processadas de forma semelhante da direita para a esquerda. Converter uma fórmula infixa conhecida torna a precedência explícita e ajuda a conferir exercícios de análise de expressões.

Exemplos de notação polonesa

Os exemplos mostram expressões equivalentes em diferentes sistemas de notação.

EntradaSaídaConversão
(A + B) * C - D- * + A B C DInfixa para prefixa
A + B * CA B C * +Infixa para pós-fixa
* + A B - C D((A + B) * (C - D))Prefixa para infixa
A B + C D - *((A + B) * (C - D))Pós-fixa para infixa

Como usar o conversor de notação

  1. Escolha uma das quatro conversões para definir a notação de entrada e a desejada.
  2. Insira a expressão com espaços entre todos os tokens se a origem for prefixa ou pós-fixa.
  3. Selecione Converter para analisar a expressão e exibir sua notação equivalente.
  4. Confira a ordem dos operadores ou selecione Redefinir para limpar a expressão e recomeçar.

Perguntas sobre o conversor de notação polonesa

O que é notação polonesa?

Ela coloca cada operador antes dos operandos: A + B vira + A B. Isso elimina parênteses quando a quantidade de operandos de cada operador é conhecida.

O que é notação polonesa reversa?

Ela coloca o operador depois dos operandos: A + B vira A B +. Também é chamada de notação pós-fixa e costuma ser avaliada com uma pilha.

Expressões prefixas e pós-fixas precisam de espaços?

Sim, este conversor exige espaços entre os tokens para distinguir valores com vários caracteres. Por exemplo, escreva + total 25 em vez de +total25.

Como o conversor trata a precedência dos operadores?

Em expressões infixas, a potência tem maior prioridade, seguida de multiplicação e divisão, depois adição e subtração. Parênteses substituem essa ordem normal.

Posso usar números e nomes de variáveis juntos?

Sim, os operandos podem ser números decimais ou identificadores formados por letras, dígitos e sublinhados. O conversor reorganiza os tokens sem calcular seu valor numérico.