Sobre o EP3.

Sobre o EP3.

por Renan Fichberg -
Número de respostas: 4

Sou só eu que estou com esse problema, ou mais alguém está "com lixo" na string parâmetro [da função para construir a fila]?

Gostaria de saber como me livrar dos "lixos" que aparecem inexplicavelmente no meio da string char *linha.

 

Desde já grato!

Em resposta à Renan Fichberg

Re: Sobre o EP3.

por Renan Fichberg -

[Não deu para dar EDIT. Complementando para ficar mais fácil de entender com um exemplo]

 

Na string [vou chamá-la de string mesmo]: 9 10 + 9 +

Vamos supor que eu quero pegar a soma que está no meio. Eu imaginei fazendo algo do tipo:

if (*string == '+' && (*string) - 1) == ' ' && (*string) + 1) == ' ')

eu pegaria apenas o "+" intermediário, mas não é o que acontece. Os valores vizinhos não estão preenchidos com caracteres de "espaço" ' ', mas com lixo, e por isso o programa acaba não me retornando o mais que eu busco. O que eu faço para me livrar desse lixo? [Com o exemplo acho que está mais fácil de entender].

Em resposta à Renan Fichberg

Re: Sobre o EP3.

por José Coelho de Pina -

Oi Renan,

Vamos supor que eu quero pegar a soma que está no meio. Eu imaginei fazendo algo do tipo:

Hmmm.
Eu não entendi o que é "pegar a soma do meio".
Vocês devem usar uma pilha para calcular o valor da expressão.
Algo muito semelhante ao que fizemos na função infixaParaPosfixa.
Isto é o que pede o exercício 12 (Valor de Expressão Polonesa) da página http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html escrita por Paulo Feofiloff.
Vocês simplemente varrem uma expressão posfixa e usando uma pilha calculam o valor da expressão.