Detalhe na saida

Detalhe na saida

by Marlon Ribas Vismari -
Number of replies: 6
Olá professor.

Professor, considere esse arquivo de entrada:

p: 3 1 2 -1 3 4 5

saída (proposta pelo enunciado):

p(x) = x^2 - x^3 + 4x^5

Se eu produzir uma saída assim:

p(x) = 1x^2 - 1x^3 + 4x^5

Há algum problema?

Obrigado!


In reply to Marlon Ribas Vismari

Re: Detalhe na saida

by Marlon Ribas Vismari -
Uma outra questão é na saída do EP proposto pelo enunciado:


1)
...
p(2)
p(2) = 2.36421e+08

Meu EP produziu a seguinte saída:

p(2)
p(2) = 236421376

São equivalentes?

--------------------------------------------------------------------------------------------

2)Professor, qual o melhor jeito de eu tratar os números decimais? Por exemplo, se uso %1.0f e tenho uma entrada t(123.456), então na saída fica t(123). Por outro lado, se uso %1.3f, tenho a saída esperada. Porém as outras entradas, p(2) por exemplo, fica na saída p(2.000).

Obrigado
In reply to Marlon Ribas Vismari

Re: Detalhe na saida

by Kaonan Micadei -
Sobre os números decimais, use %g, isso garante que os inteiros serão impressos sem casas decimais, além de imprimir em notação científica os números muito grandes e os decimais.

Eu também gostaria de saber sobre a saída. Uma saída do tipo

a(x) = 1 + -1x^2

poderia ser considerada?
In reply to Kaonan Micadei

Re: Detalhe na saida

by Marlon Ribas Vismari -
Kaonan, muito obrigado..... a saída está certinha =]

Professor, a segunda pergunta não precisa responder (Obrigado).
In reply to Kaonan Micadei

Re: Detalhe na saida

by Francisco de Melo Viríssimo -
Kaonan, para corrigir essa saída, basta colocar uma condição sobre o próximo coeficiente a ser impresso, tipo
Polinomio p;
...
if (p->coef > 0)
{
printf ("+");
}
/* else (não faz nada) */

...

Não fiz beeem desse jeito, mas é a mesma idéia.
Espero ter ajudado.

Francisco
In reply to Kaonan Micadei

Re: Detalhe na saida

by Francisco Reverbel -
Para fazer a impressão dos coeficientes usem "%g", como o Kaonan sugeriu.

Para que a saída apareça no formato do enunciado (exemplo: p(x) = x^2 - x^3 + 4x^5) a idéia é, para cada termo, imprimir primeiro o sinal do coeficiente (" + " ou " - ") e depois imprimir (com "%g") o valor absoluto do coeficiente, caso esse valor absoluto seja diferente de 1 ou caso o expoente seja zero.

Ah, o primeiro termo é uma exceção, pois se o coeficiente desse termo for positivo o sinal '+' não aparece. E se o coeficiente desse termo for negativo, o sinal '-' vem grudado no termo, ou seja, o termo é precedido de um "-" (sem espaços) em vez de um " - " (com espaços).
In reply to Francisco Reverbel

Re: Detalhe na saida

by Kaonan Micadei -
A pergunta sobre imprimir p(x) = 1 + -2x era só por curiosidade.

Uma função recursiva para imprimir polinomios é mais fácil de implementar, mas ela fica limitada a esse tipo de impressão ou a algo como p(x) = + 1 - 2x.