le_entrada

le_entrada

by Martin Ichilevici de Oliveira -
Number of replies: 1
Professor,

Para uma entrada do tipo
a: 3 2 1 3 3 3 1

em que um expoente tem mais de um valor para o coeficiente, qual deve ser a expressão de a?
a(x) = 2x + 3x^3
a(x) = 3x + 3x^3
a(x) = 5x + 3x^3

E para o caso
b: 2 0 2 3 1 2 2

Devemos considerar 0 2 como uma entrada válida (mas não gravar no polinômio) ou ignorá-la e ler a próxima? Isto é,
b(x) = 3x
ou
b(x) = 3x + 2x^2
In reply to Martin Ichilevici de Oliveira

Re: le_entrada

by Francisco Reverbel -
No primeiro caso (a: 3 2 1 3 3 3 1) não há motivo para não aceitar os três pares de números fornecidos. O polinômio lido deve ser

a(x) = 5x + 3x^3

Além desse ser o comportamento mais lógico, é também o mais fácil de implementar. Basta ir somando todos os monômios correspondentes aos pares fornecidos na entrada, considerando que a quantidade total de pares é o número que vem logo depois do ":" (3, no caso acima).

No segundo caso (b: 2 0 2 3 1 2 2) apenas os dois primeiros pares de números devem ser levados em conta, pois a quantidade de pares especificada é 2. O fato do par 0 2 não gerar um célula (pois o termo correspondente é nulo) não é motivo para pular esse par. O polinômio lido deve ser

b(x) = 3x

e o resto da linha (o par 2 2) deve ser descartado. Alternativamente, você poderia considerar que a linha toda é inválida, pois ela tem pares demais. Eu acho melhor e mais simples olhar só para a quantidade de pares especificada e ignorar o resto da linha. O fato do resto da linha ser ignorado pode até ser uma característica desejável, pois permite que os usuários façam comentários:

p: 3 1 2 3 4 5 6 ... p(x) é blá, blá, blá...