Alternativa C
A questão aborda a lógica de programação voltada para manipulação de matrizes (arrays bidimensionais) e algoritmos de busca de extremos (mínimo e máximo).
Fundamentação Teórica
Para encontrar o maior e o menor valor em uma matriz, é necessário percorrer todos os elementos dela. Em linguagens de programação estruturadas, isso é feito através de laços de repetição aninhados (loops dentro de outros loops):
- Primeiro Laço (Externo): Percorre as linhas da matriz.
- Segundo Laço (Interno): Percorre as colunas de cada linha.
Para acessar um elemento específico como matriz[linha][coluna], o algoritmo deve estar posicionado dentro do segundo laço, pois é apenas lá que a variável coluna está sendo iterada corretamente para cobrir todas as células.
Análise das Alternativas
- Alternativa A: Sugere criar "mais duas estruturas de repetição". Embora tecnicamente possível (fazer uma passagem para o mínimo e outra para o máximo), é ineficiente. O ideal é fazer uma única passagem (um único conjunto de loops aninhados) verificando ambas as condições simultaneamente.
- Alternativa B: Similar à A, além de sugerir preencher a matriz com zero, o que não garante que os valores reais serão comparados corretamente se o algoritmo não considerar o primeiro elemento real como referência inicial.
- Alternativa C (Correta): Indica criar as variáveis de controle (
maior e menor) e posicionar a lógica de comparação dentro do SEGUNDO laço. Isso garante que, a cada iteração da coluna, o valor atual seja verificado contra o mínimo e máximo acumulados. O pseudocódigo apresentado compara corretamente: se [valor] < menor então menor = [valor]se [valor] > maior então maior = [valor]- Alternativa D: Sugere armazenar todos os números menores em um array. Isso consome memória desnecessária quando apenas um valor (o mínimo) precisa ser retido.
- Alternativa E: Coloca a lógica no PRIMEIRO laço. Se o primeiro laço for o das linhas, a coluna não estará sendo iterada internamente, fazendo com que o algoritmo ignore a maioria dos elementos da matriz.
Conclusão
A alternativa C é a correta porque descreve a implementação eficiente e estruturalmente adequada: utilizar as variáveis de acumulação e realizar a verificação dentro do escopo interno do loop (segundo laço), garantindo o acesso correto ao índice da coluna (matriz[linha][coluna]).