Dúvidas

Re: Dúvidas

por Francisco Reverbel -
Número de respostas: 0
Henrique: -------------------------------------------------------------------------
4) A função soma1( int num[] ) pode ser implementada
fazendo uso das funções soma_mesmo_sinal e
soma_sinais_opostos?

Natan: ------------------------------------------------------------------------------
sim.

---------------------------------------------------------------------------------------
Pode, mas isso não é uma boa idéia.

O enunciado não deixou clara a motivação para a função soma1. Quando colocamos essa função no enunciado, a nossa intenção (da Profa. Nami e minha) é que ela fosse uma função auxiliar para a operação de divisão e que ela fosse mais eficiente e simples de usar que a função soma. Na divisão por subtrações sucessivas, toda vez que você subtrai o divisor do dividendo você deve somar 1 ao "quociente parcial". A idéia é usar a função soma1 para fazer essa soma. Mas é preciso ter uma função específica para isso? A função soma não poderia ser usada? Poderia sim, mas se usarmos a função soma para somar 1 ao "quociente parcial" teremos as seguintes desvantagens:
  • A função soma trabalha com dois operandos num1 e num2. Para usar essa função precisamos de um segundo vetor de 50 dígitos (num2) e precisamos preencher esse vetor com o "inteiro grande" +1.
  • A função soma coloca o resultado num terceiro vetor res. Para usar essa função precisamos de mais um vetor de 50 dígitos (res). Além disso, como na divisão por subtrações parciais o que precisamos executar é o incremento quociente++, temos que copiar para o vetor quociente o resultado da soma, que foi colocado em res pela função soma.
É muito mais eficiente chamar uma função que adiciona 1 a um "inteiro grande" e atualiza diretamente o vetor recebido como parâmetro, de modo que esse vetor passe a representar o valor incrementado. Essa função (soma1) pode ser implementada de modo mais simples e mais eficiente que as funções soma_mesmo_sinal e soma_sinais_opostos.

Reverbel