Re: Dúvida na segunda tarefa: o "menos" unário
[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Dúvida na segunda tarefa: o "menos" unário



Olá para todos,

Aproveito a pergunta do Tiago para responder a todos:

On Tue, 15 Apr 2003, Tiago Motta Jorge wrote:

> Caro Professor,
> 
>     Gostaria de saber se podemos exigir do usuário que o sinal "menos"
> unário esteja sempre entre parêntesis, como em: (-1)-(-1), ao invés
> de: -1--1. Isto ajudaria muito.
> 
> Atenciosamente,
> Tiago Motta Jorge.

Em alguma aula eu comentei um "truque" para tratar o menos unário em
expressões pós-fixa, sem fornecer muitos detalhes, que vão a seguir. Esta
solução geral não introduz muita dificuldade, por isso eu sugiro que a
utilizem.

Entretanto se não tiverem tempo para fazer a solução geral, usem a
restrição do parênteses, como sugere o Tiago, e indiquem claramente que é
assim q/ o "menos unário" deve ser "admitido".

Minha sugestão de implementação é:

 1. Durante a transformação para pós-fixa:
    Manter uma variável indicando o "estado", isso serviria para analisar
    se a expressão foi inserida corretamente e se não for o caso , indicar
    ao usurário o primeiro erro.
    No caso do unário resolve assim: "token atual" é <->
       se "token anterior" é <operador> ou <(>, 
       então se trata de "unário", codifique com código especial '@',p.e., 
             2 + - 3 -> 2 3 @ +
      
 2. Durante a avaliação:
    Como o "menos unário" foi codificado com o caractere '@', ao lê-lo o
    avaliador desempilha apenas o topo da pilha de operandos.

Abraços,
Leônidas

 --------------------------------------------------------------------------
 Leônidas de Oliveira Brandão  -  Computer Science Dep. of IME-USP (Brazil)
 leo@ime.usp.br - http://www.ime.usp.br/~leo - +55 (011) 3091 [6298 | 6135] 
 Interessado em Matemática?  Visite o "iMatica":   http://www.matematica.br