Para realizar o somatório de todos os valores de uma LINHA em uma matriz e armazená-los em um vetor, é necessário utilizar uma estrutura de repetição aninhada (loops).
Análise Lógica
- Loop Externo (
i): Deve percorrer cada linha da matriz (de 1 até 4). O índice i define qual linha estamos processando. - Inicialização: Antes de começar a somar os elementos de uma nova linha, é obrigatório zerar a posição correspondente no vetor de soma (
soma[i] <- 0). Caso contrário, o valor acumulado da linha anterior interferiria no cálculo. - Loop Interno (
j): Para cada linha i, devemos percorrer todas as suas colunas (de 1 até 4). O índice j define qual coluna estamos acessando. - Acumulação: Dentro do loop interno, o valor da célula
valores[i, j] deve ser somado ao acumulador soma[i].
Comparação das Alternativas
| Alternativa | Análise do Código | Veredito |
|---|
| A | Falta a operação de soma. Usa soma[i] <- valores[i,j] (atribuição simples), o que sobrescreve o valor anterior em vez de somar. | ❌ Incorreta |
| B | Realiza a soma correta, mas esquece inicializar soma[i] <- 0 antes do loop interno. Isso gera erros de memória ou resultados incorretos. | ❌ Incorreta |
| C | Possui inicialização (soma[i] <- 0) e a soma correta (soma[i] <- soma[i] + valores[i,j]) dentro dos loops adequados. | ✅ Correta |
| D | Não possui o loop interno para percorrer as colunas. A variável j não existe no escopo. | ❌ Incorreta |
| E | Tenta acessar a matriz como se fosse um vetor unidimensional inicialmente (valores[i]), o que não faz sentido para uma matriz 2D. | ❌ Incorreta |
Análise Detalhada
A alternativa C é a correta porque segue a lógica padrão de algoritmos matriciais:
- Estrutura de Loops:
\text{para } i = 1 \dots 4 \quad (\text{linhas})
\quad \text{soma}[i] \leftarrow 0 \quad (\text{reseta o acumulador})
\quad \text{para } j = 1 \dots 4 \quad (\text{colunas})
\qquad \text{soma}[i] \leftarrow \text{soma}[i] + \text{valores}[i, j] \quad (\text{acumula})
\quad \text{fimpara}
\text{fimpara} - Por que a inicialização é vital? Sem
soma[i] <- 0, na primeira adição, o computador tentaria somar um número desconhecido (valor aleatório da memória) ao primeiro elemento da linha, resultando em um dado corrompido.
Alternativa C