Computação Múltipla Escolha

Qual das alternativas a seguir apresenta a implementação correta de uma função que calcula a soma dos elementos de um vetor?

Qual das alternativas a seguir apresenta a implementação correta de uma função que calcula a soma dos elementos de um vetor?

  1. int soma(int *vetor, int n) { int Soma = 0; for (int i = 0; i < n; i++) { Soma = Soma + vetor[i]; } return Soma; }
  2. int soma(int *vetor, int n) { int Soma; for (int i = 0; i <= n; i++) { Soma = Soma + vetor[i]; } return Soma; }
  3. int soma(int *vetor, int n) { int Soma = 0; for (int i = 1; i < n; i++) { Soma = Soma + vetor[i]; } return Soma; }
  4. int soma(int *vetor, int n) { for (int i = 0; i < n; i++) { Soma + vetor[i]; } return Soma; }
  5. int soma(int *vetor, int n) { int Soma = 0; for (int i = 0; i < n; i++) { Soma = vetor[i] + Soma; } return Soma; }

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A

Análise da Questão:

O objetivo desta questão é identificar a implementação correta de uma função em C++ destinada a calcular a soma dos elementos de um vetor. Para isso, é necessário entender como funcionam os acumuladores e os laços de repetição na linguagem.

Requisitos Fundamentais para a Função Correta:

Para que a função soma funcione adequadamente, ela deve obedecer às seguintes regras lógicas:

  • Inicialização do Acumulador: A variável que acumula o resultado (Soma) deve ser declarada e inicializada com zero (int Soma = 0;) fora do laço de repetição. Se inicializada dentro do for, o valor seria zerado a cada nova iteração.
  • Limite do Laço: O vetor possui índices de 0 até n-1. Portanto, a condição do laço deve ser i < n. Utilizar i <= n provocaria um erro de acesso à memória (buffer overflow), pois tentaria ler a posição n, que não existe.
  • Acumulação do Valor: Deve-se somar o conteúdo da posição atual (vetor[i]) à variável acumuladora, utilizando o operador +=. Somar apenas o índice (i) ou atribuir (=) em vez de somar alteraria o resultado.

Comparativo das Opções:

As alternativas incorretas geralmente apresentam erros sutis que impedem o funcionamento correto do algoritmo:

  • Alternativa B: Frequentemente utiliza a condição i <= n, o que tenta acessar um elemento fora do vetor.
  • Alternativa C: Comumente usa Soma += i, somando os números dos índices (0, 1, 2...) em vez dos valores armazenados no vetor.
  • Alternativa D: Muitas vezes usa Soma = vetor[i], o que sobrescreve o valor total a cada passo, retornando apenas o último elemento.
  • Alternativa E: Pode apresentar falhas na declaração da variável ou no retorno do valor final.

Conclusão:

A Alternativa A é a única que apresenta a estrutura lógica completa e correta: inicia o acumulador, percorre os índices válidos (0 a n-1) e adiciona os valores do vetor ao total.

A lógica matemática representada pelo código correto é:

S = \sum_{i=0}^{n-1} V[i]

Portanto, a implementação mostrada na Alternativa A garante o cálculo correto da soma dos elementos.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.