Funções da math.h e atribuição

Funções da math.h e atribuição

por Fabio Brzostek Muller -
Número de respostas: 9

Olá,

Na função eval, podemos usar qualquer função da <math.h>? Por exemplo pow e fmod para exponenciação e resto de divisão, respectivamente?

Outra dúvida (que não tem nada a ver com a anterior) é o funcionamento do operador atribuição. O que exatamente ele faz? Nos meus testes com o executável ele sempre retornava o valor do primeiro operando, como:

>>> 0 0.4567 =
Resultado: 0.000000

>>> 2 5 =
Resultado: 2.000000

É isso mesmo?

Em resposta à Fabio Brzostek Muller

Re: Funções da math.h e atribuição

por José Coelho de Pina -

Oi Fábio,

Na função eval, podemos usar qualquer função da <math.h>? Por exemplo pow e fmod para exponenciação e resto de divisão, respectivamente?

Pode, o include já está lá.

Outra dúvida (que não tem nada a ver com a anterior) é o funcionamento do operador atribuição.

Atribuição não faz parte do EP3.

"...Cada expressão pode conter números e os seguintes símbolos correspondentes a 6 operadores relacionais, 7 operadores aritméticos e 3 operadores lógicos: ..."
Em resposta à José Coelho de Pina

Re: Funções da math.h e atribuição

por Fabio Brzostek Muller -

Ok, obrigado. Tinha perguntado sobre atribuição pois no esqueleto ele está lá, no vetor de precedência e nos nomes das classes. Ignoro isso então, certo?

Em resposta à Fabio Brzostek Muller

Re: Funções da math.h e atribuição

por José Coelho de Pina -

Tinha perguntado sobre atribuição pois no esqueleto ele está lá, no vetor de precedência e nos nomes das classes. Ignoro isso então, certo?

No EP3 sim.
Isto será necessário no EP4.

Em resposta à José Coelho de Pina

Re: Funções da math.h e atribuição

por Fabio Brzostek Muller -

Revivendo esse tópico...

Como você disse, a atribuição seria usada só no EP 4, não no 3. Então minha função itensParaValores do EP 3 não faz nada caso o operador seja de atribuição. Mas no enunciado do EP 4, está escrito que "A função itensParaValores() é a mesma que foi feita para o EP3."

Se for exatamente a mesma, ela não irá fazer nada quando aparecer o operador atribuição. Então tenho que adaptar (mesmo que pouco), certo? Supondo que o que eu fiz no EP 3 estava certo mesmo e essa adaptação seja necessária, não seria bom deixar isso avisado no enunciado?

Edit: E quando o "operador" é abre ou fecha parênteses? Essa situação também não ocorria no EP 3, e no vetor precedencia no eval.c eles nem aparecem...

Em resposta à Fabio Brzostek Muller

Re: Funções da math.h e atribuição

por José Coelho de Pina -

Se for exatamente a mesma, ela não irá fazer nada quando aparecer o operador atribuição.

Você tem razão.olho roxo 
Da maneira que eu fiz essa função, nada foi alterado, mas há outras maneiras.

Então tenho que adaptar (mesmo que pouco), certo?

Certo.
A sua função deverá colocar a precedência no campo prec como você faz para os outros operadores. 

Supondo que o que eu fiz no EP 3 estava certo mesmo e essa adaptação seja necessária, não seria bom deixar isso avisado no enunciado?

Já alterei o enunciado.
Muito obrigado.

Edit: E quando o "operador" é abre ou fecha parênteses? Essa situação também não ocorria no EP 3, e no vetor precedencia no eval.c eles nem aparecem...

Nada deverá ser feito nessa função com abre e fecha parenteses. Acrescentei esse comentário no enunciado.

Muito obrigado.

Em resposta à José Coelho de Pina

Re: Funções da math.h e atribuição

por Fabio Brzostek Muller -
Em resposta à Fabio Brzostek Muller

Re: Funções da math.h e atribuição

por Fernanda de Camargo Magano -

Nada deverá ser feito com abre e fecha parênteses na ItensParaValores,  mas devem ser levados em conta na InfixaParaPosfixa, certo?  Então como vou identificar os parênteses para transformar a expressão de infixa para posfixa, se não terá nada no campo vFloat (já que não é um número) e nada no prec?