Seja v um array (vetor) contendo objetos que representam tít...

Próximas questões
Com base no mesmo assunto
Q2262698 Algoritmos e Estrutura de Dados
Seja v um array (vetor) contendo objetos que representam títulos eleitorais. Cada título eleitoral é caracterizado, entre outras informações, pelo seu número. Este número identifica unicamente cada título eleitoral. Considere então o problema de criar uma função (método) que, passados como parâmetros um array de títulos eleitorais como o array v e um número x, retorne um título eleitoral cujo número seja igual ao número x. Na definição do algoritmo que implementa a função desejada, qual(ais) estrutura(s) de repetição seria(m) mais adequada(s)?  
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A - Enquanto (expressão) faça: repete enquanto a expressão for verdadeira.

Vamos entender o enunciado: a questão pede para criar uma função que, dado um array de títulos eleitorais e um número específico, retorne o título eleitoral cujo número corresponda ao informado. Para isso, é necessário percorrer o array verificando cada objeto até encontrar aquele cujo número seja igual ao fornecido.

Explicação Alternativa Correta:

A estrutura de repetição "enquanto (expressão) faça" (ou while em algumas linguagens de programação) é a mais adequada para essa situação porque ela permite que você percorra o array até encontrar o título eleitoral desejado. Assim que a condição é satisfeita (ou seja, quando o número do título eleitoral é igual ao número fornecido), a repetição pode ser interrompida. Isso é eficiente porque não precisa necessariamente percorrer todos os elementos do array; a busca pode terminar assim que o elemento desejado é encontrado.

Explicação das Alternativas Incorretas:

B - Para i de 1 até N faça: repete exatamente N vezes. Embora a estrutura de repetição "para" (ou for) seja útil em muitos contextos, ela não é a mais eficiente aqui. Isso porque, mesmo que o título eleitoral desejado seja encontrado antes do final do array, a repetição continuará até percorrer todos os N elementos. Isso pode ser desnecessariamente ineficiente.

C - Para i de 1 até N faça dentro de enquanto (expressão) faça. Essa alternativa mistura duas estruturas de repetição de forma desnecessária. A combinação de "para" e "enquanto" não é apropriada neste contexto porque pode tornar o algoritmo mais complexo do que precisa ser. O uso correto de uma única estrutura de repetição é suficiente para resolver o problema.

D - Enquanto (expressão) faça dentro de para i de 1 até N faça. Novamente, essa alternativa combina duas estruturas de repetição de maneira inadequada. Colocar um "enquanto" dentro de um "para" pode resultar em um código confuso e desnecessariamente complicado. Não é a abordagem ideal para uma busca simples em um array.

Concluindo, a melhor escolha é a estrutura "enquanto (expressão) faça", pois permite interromper a busca assim que o título eleitoral desejado é encontrado, tornando o algoritmo mais eficiente.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo