(1) Considere a implementação do algoritmo Busca Sequencial apresentada na aula. Faça uma versão deste algoritmo, trocando a estrutura de repetição for por while.
Para os testes leve em consideração o vetor:
Exemplo de entrada:
Digite qual valor deseja procurar: 7
Valor encontrado!
Digite qual valor deseja procurar: 4
Valor não encontrado!
Exemplo de entrada:
Digite qual valor deseja procurar: 7
Valor encontrado!
Digite qual valor deseja procurar: 4
Valor não encontrado!
Passo 1
Beleza, vamos lá! O enunciado quer que a gente pegue o algoritmo de Busca Sequencial (linear search) que normalmente usa um
Conteúdo da matéria:
for
pra percorrer o vetor e, em vez disso, faça a mesma coisa com um while
.Conteúdo da matéria:
- Estrutura de dados: vetor (array)
- Estruturas de repetição:
while
- Operadores lógicos e de comparação
O que precisamos pra resolver:
- Um vetor fixo:
[1,5,9,7,12,3,17]
- Uma variável que guarde o valor buscado
- Um índice
i
que começa em 0 - Uma flag
encontrado
(verdadeiro/falso) - Um loop
while
que pare quando achar ou chegar ao fim
Passo 2
Primeiro, o que é Busca Sequencial? É só comparar, um por um, cada elemento do vetor com o valor que o usuário quer achar. A gente mantém um índice
Enquanto
i
e faz:Enquanto
i
for menor que o tamanho do vetor e a gente ainda não tiver achado, verifica se vetor[i] == valor
. Se for igual, marcamos encontrado = True
. Senão, somamos 1 em i
e repetimos.Em pseudocódigo, a condição de continuação do
while
fica:Isso garante que a gente pare se sair do vetor ou achar o valor.
Passo 3
Agora, o esqueleto em código (estilo Python/pseudocódigo). Vou comentar cada linha com calma:
# Vetor fixo que vamos pesquisar
vetor = [1, 5, 9, 7, 12, 3, 17]
# Entrada do usuário
valor = int(input("Digite qual valor deseja procurar: "))
# Inicialização
i = 0 # índice que vai de 0 até len(vetor)-1
encontrado = False # flag que indica se achamos o valor
# Laço while: continua enquanto não acabar o vetor e não achar o valor
while i < len(vetor) and not encontrado:
if vetor[i] == valor:
encontrado = True # achou, marca como True
else:
i += 1 # senão, avança pro próximo índice
# Depois do loop, checamos a flag
if encontrado:
print("Valor encontrado!")
else:
print("Valor não encontrado!")
Explicando o que cada parte faz:
i = 0
: começamos pelo primeiro elemento.while i < len(vetor) and not encontrado
: garantia de não ultrapassar o vetor e parar se achar.- Dentro, comparamos
vetor[i] == valor
. - Se não achou, fazemos
i += 1
pra passar pro próximo. - Fora do laço, usamos a flag
encontrado
pra dizer se achou ou não.
Resposta
Segue a versão final do algoritmo de Busca Sequencial usando
while
:vetor = [1, 5, 9, 7, 12, 3, 17]
valor = int(input("Digite qual valor deseja procurar: "))
i = 0
encontrado = False
while i < len(vetor) and not encontrado:
if vetor[i] == valor:
encontrado = True
else:
i += 1
if encontrado:
print("Valor encontrado!")
else:
print("Valor não encontrado!")