Alternativa A
Para resolver esta questão, é necessário analisar a lógica de busca linear em um vetor na linguagem C. O objetivo do programa é verificar se um valor (NUM) existe em um vetor (VET) de 10 posições.
Lógica da Busca Linear
O algoritmo correto deve seguir estes passos fundamentais:
- Inicialização do índice: O contador deve começar em 0, pois os índices de arrays em C vão de 0 a N-1 (neste caso, 0 a 9).
- Correto:
ind = 0; - Incorreto:
ind = 10; (o laço não executaria).
- Inicialização da bandeira (flag): A variável que indica se o elemento foi encontrado (
achou) deve iniciar como falsa (false ou 0).
- Condição do Laço: O loop deve continuar enquanto o índice estiver dentro dos limites E o elemento ainda não foi encontrado.
- Lógica ideal:
while(ind < 10 && achou == false)
- Corpo do Laço: Comparar o valor atual com o procurado. Se igual, marca-se como encontrado. Se não, avança o índice.
Análise das Alternativas
Vamos avaliar as opções apresentadas na imagem:
| Opção | Inicialização ind | Condição do Laço | Avaliação |
|---|
| A | ind = 0 | achou != false | Melhor opção (possível erro de digitação na questão) |
| B | ind = 0 | achou == true | Incorreta (laço não inicia pois achou é false) |
| C | ind = 10 | achou != false | Incorreta (índice inicial fora do limite) |
| D | ind = 10 | achou == true | Incorreta (índice inicial fora do limite) |
| E | ind = 10 | achou == true | Incorreta (índice inicial fora do limite) |
Por que a Alternativa A é a resposta correta?
- Inicialização do Índice: Apenas as alternativas A e B iniciam
ind em 0. As outras (C, D, E) iniciam em 10, o que faria a condição ind < 10 ser falsa imediatamente, impedindo qualquer leitura do vetor. - Verificação da Bandeira: Embora a condição
achou != false seja tecnicamente incorreta (pois achou começa como false, tornando a condição falsa e parando o loop instantaneamente), ela é a única que tenta verificar o estado da bandeira de forma negativa, sugerindo um erro de digitação comum em questões de prova onde se pretendia escrever achou == false ou !achou. - Lógica Interna: A estrutura interna
if (num == VET[ind]) está correta nas opções válidas.
Portanto, considerando que a alternativa A é a única que configura corretamente o início da varredura do array (ind = 0), ela é a escolha indicada, assumindo que houve uma imprecisão no operador lógico da questão apresentada.
Alternativa A.