Faça um programa computacional que pergunte ao usuário 10 nomes próprios (sem sobrenomes), em ordem alfabética. O programa deve ser capaz de encontrar um nome e retornar a posição dele na lista. Caso o nome não seja encontrado, o programa deve retornar -1. Considere para a solução:
Busca sequencial;

Passo 1

O enunciado pede um programa que armazene 10 nomes próprios (sem sobrenomes) em ordem alfabética, depois solicite um nome qualquer e faça uma busca sequencial nessa lista. Se o nome for encontrado, o programa deve devolver seu índice na lista; caso contrário, deve devolver -1. O conteúdo envolvido é: vetores (listas), entrada de dados, laço de repetição e busca sequencial (linear search).

Passo 2

Inicialize uma lista vazia para guardar os 10 nomes e use um laço que percorre 10 vezes, solicitando ao usuário que informe cada nome já em ordem alfabética. A cada iteração, leia a string e acrescente-a à lista.
Após ler os 10 nomes, peça ao usuário o nome que deseja buscar. Armazene essa string em uma variável chamada, por exemplo, ttalvo.

Passo 3

Implemente a busca sequencial: percorra a lista com um laço (por exemplo, ttfor com ttenumerate) e compare cada elemento com ttalvo. Se encontrar igualdade, armazene o índice e interrompa o laço. Caso termine o laço sem achar, mantenha o valor inicial -1.
Finalmente, exiba o valor do índice encontrado (ou -1 se não foi encontrado). Esse valor corresponde à posição na lista (começando em zero).

Resposta

# Leitura dos \(10\) nomes em ordem alfabética
nomes = []
for i in range(\(10\)):
    nome = input(f"Informe o \({i+1}\)\textordfeminine\ nome (em ordem alfabética): ")
    nomes.append(nome)

# Nome a ser buscado
alvo = input("Digite o nome a ser buscado: ")

# Busca sequencial (linear search)
posicao = -1
for idx, nome in enumerate(nomes):
    if nome == alvo:
        posicao = idx
        break

# Saída do resultado
print(posicao)

Exercícios relacionados