função subtrai no ep3

função subtrai no ep3

by Andre Manoel -
Number of replies: 3
Olá!

Gostaria de saber se posso fazer a função subtrai me utilizando da função soma. Estou em dúvida pois no enunciado diz

"Sua implementação das funções soma e subtrai deve ser eficiente, ou seja, os polinômios de entrada devem ser percorridos apenas uma vez."

e para fazer o que quero teria de percorrer a lista mais 2 vezes, p/ trocar e restaurar o sinal do polinomio q. Ainda seria O (compr. da lista), mas a lista não seria percorrida uma vez só, e sim 3...

Acredito que isto economizaria várias linhas de código em troca de um pouquinho a mais de processamento, não? Não valeria a pena?

Obrigado!
André
In reply to Andre Manoel

Re: função subtrai no ep3

by Francisco Reverbel -
Uma outra maneira de economizar as mesmas linhas de código é fazer a soma e a subtração na mesma função. Nesse caso a sua biblioteca teria uma função auxiliar como esta:

static Polinomio soma_ou_subtrai(Polinomio p, Polinomio q, int subtrai)
{
...
}

O parâmetro subtrai especificaria se essa função deve fazer uma soma (subtrai == 0) ou uma subtração (subtrai == 1). Todo o código que percorre as duas listas estaria nessa função. Com uma função assim, as funções soma e subtrai seriam one-liners; cada uma delas teria somente uma chamada à função auxiliar.

Sugestão: Em vez de sair escrevendo a função soma_ou_subtrai, escreva primeiro uma função soma que faça todo o trabalho de percorrer as duas listas. Com essa função escrita, pense em como modificá-la para obter uma função auxiliar soma_ou_subtrai. Tendo a função auxiliar, jogue fora a implementação inicial da função soma.
In reply to Francisco Reverbel

Re: função subtrai no ep3

by Andre Manoel -
Certo, entendi! Obrigado professor.

Só mais uma dúvida: posso usar a função fabs da math.h? No caso seria pra mostrar/analisar só o modulo dos coeficientes na hora de imprimir o polinômio...

Obrigado novamente.