Questão nº 41
Questão de Tecnologia da Informação · FGV TCE-TO 2022 (nº 41)
Pedro está dando seus primeiros passos na programação Python e pretende construir uma função para colocar em ordem crescente os elementos de uma lista. A versão corrente do seu script de teste é a mostrada abaixo.
```
def enigma(L):
for i in range(0, len(L)-2):
achou=False
for j in range(1, len(L) -1):
if L[i] > L[j]:
L[i], L[j] = L[j], L[i]
achou=True
if achou:
break
return len(L)
x=[4,2,6,5,10]
print (enigma(x))
print (x)
```
Nesse estágio, a lista exibida pelo último comando print é:
- A[10, 4, 6, 5, 2]
- B[2, 6, 5, 4, 10]
- C[2, 4, 6, 5, 10] (alternativa correta)
- D[4, 5, 6, 2, 10]
- E[4, 2, 5, 6, 10]
Resposta comentada
Gabarito Alternativa C
Conceito-chave: O break interrompe o for externo assim que a variável achou for True (ou seja, assim que qualquer troca for feita). Isso significa que o algoritmo não ordena a lista inteira — ele só faz uma "passada" parcial e para.
- (A) Incorreta: O
breakimpede que o laço continue até o fim, então o10nunca chega à última posição; a lista não fica com o maior elemento no final. - (B) Incorreta: O
2até é movido para o início, mas o6e o5não são trocados entre si, pois o laço externo para após a primeira troca (i=0), deixando[2, 6, 5, 4, 10]— não[2, 6, 5, 4, 10]como aqui. - (C) Correta: Para
i=0, o laço interno comparaL[0]=4comL[1]=2(troca →[2,4,6,5,10]), depois comL[2]=6(não troca),L[3]=5(não troca),L[4]=10(não troca). Como houve troca,achou=Truee obreakencerra oforexterno. A lista final é[2, 4, 6, 5, 10]. - (D) Incorreta: O
4não fica na posição 1, pois ele é trocado com o2logo no primeiro passo; além disso, o5e o6não são reordenados. - (E) Incorreta: O
2não é movido para o início, pois a primeira troca é entreL[0]eL[1], que coloca o2na posição 0 — não[4, 2, 5, 6, 10].
Armadilha da banca: O distrator mais tentador é a letra B, pois parece uma ordenação parcial "lógica" (o menor na frente), mas esquece que o break para o laço externo imediatamente após a primeira troca, sem continuar varrendo os demais índices i. Quem não percebe o break tende a simular mentalmente uma ordenação completa e erra.
Fonte: FGV TCE-TO 2022 Auditor de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.