Ir para conteúdo
Fórum Script Brasil
  • 0

notação sufixa


jxfdasilva

Pergunta

Bom dia companheiros,

preciso de uma ajudo vossa na criação de um método em JAVA para o seguinte:

Introdução

As expressões algébricas podem ser escritas de variadas formas. Na forma que deverá estar mais habituado a ver, a notação infixa, o operador é escrito entre os operandos:

1 + 2

Uma notação alternativa, a sufixa, escreve o operador após os operandos:

1 2 +

Esta notação dispensa o uso de parêntesis visto as operações serem efectuadas assim que um operador é especificado. Entre outras vantagens, é uma solução que minimiza os acessos à memória e efectua os cálculos mais eficientemente. No caso limite é possível construir uma calculadora de notação sufixa com apenas três registos, dois para guardar dois números e um terceiro para guardar um resultado temporário de um operador binário, e isto para expressões de complexidade arbitrária.

Devido às suas vantagens, durante as décadas de 60 e 70, esta notação atingiu alguma popularidade, tendo inclusivamente existido algumas calculadoras de notação sufixa para o grande público. O desenvolvimento de um algoritmo que permite converter notação infixa para notação sufixa contribuiu para essa popularidade. Esse algoritmo é descrito de seguida. O algoritmo recebe uma string, com os vários tokens que compõem a expressão na notação infixa (1, + e 2 no exemplo acima), e devolve outra string, com a expressão na notação sufixa.

Enquanto houver tokens para ler

Ler o próximo token

Se o token for um operando

Acrescentá-lo à string de saída

Se o token for um operador, o1

Enquanto houver um operador o2 no topo da pilha com precedência maior que o1

Retirar o2 da pilha e acrescentá-lo à string de saída

Colocar o1 no topo da pilha

Se o token for '('

Acrescentá-lo ao topo da pilha

Se o token for ')'

Enquanto o operador no topo da pilha não for um '('

Retirar operadores do topo da pilha e acrescentá-los à string de saída

Retirar o '(' do topo da pilha

Quando não houver mais tokens para ler

Enquanto houver operadores na pilha

Retirar operadores do topo da pilha e acrescentá-los à string de saída

Se poderem postar algumas dicas, agradeço.

Eu não domino JAVA (trabalho com DELPHI ).

Abraço a todos.

José

África - Moçambique

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...