Fazer um programa de diálogo de login semelhante ao exercício 6 de strings, com a diferença de que é possível cadastrar no máximo 10 nomes de usuário e suas respectivas senhas (nomes de usuário repetidos devem ser descartados). No diálogo de login, o programa deve testar se o usuário fornecido existe e se a sua senha confere.
Passo 1
Beleza, então o que a gente precisa fazer é um programa que:
- Permite cadastrar até 10 pares (nome de usuário + senha).
- Ignora qualquer cadastro cujo nome de usuário já exista (sem duplicar).
- Depois dos cadastros, faz um diálogo de login onde o usuário informa nome e senha, e o programa diz se deu certo ou não.
Conteúdo da matéria: arrays (ou listas), laços (loops), estruturas condicionais (if/else) e operações de comparação de strings. Vamos precisar de um jeito de guardar até 10 nomes e 10 senhas, verificar duplicatas e depois comparar entrada do login com esses dados.
Passo 2
Vamos criar duas listas (ou arrays) paralelas:
usuariospara armazenar os nomes de usuário;senhaspara armazenar as senhas associadas.
Cada índice em
usuarios corresponde ao mesmo índice em senhas. Exemplo: usuarios[0] tem senha senhas[0].Passo 3
Fazer o cadastro (até 10 entradas ou até o usuário quiser parar). Para cada tentativa de cadastro:
- Pedir nome de usuário.
- Verificar se esse nome já existe em
usuarios.- Se já existir, avisar “usuário repetido” e não guardar nada.
- Se não existir e ainda não atingimos 10, pedir senha e armazenar.
- Parar quando chegarmos a 10 cadastros válidos ou se o usuário disser “não quero mais”.
Teoria usada aqui:
- Loop (
whileoufor) para repetir até um limite ou até condição de parada. - Verificação de existência em array (procurar elemento).
- Inserção em array no final.
Passo 4
Depois do cadastro, entra a fase de login:
- Pedir nome de usuário e senha.
- Procurar o nome na lista
usuarios.- Se não achar, responder “usuário não encontrado”.
- Se achar, pegar o índice
ie comparar a senha informada comsenhas[i].- Se bater, “login bem-sucedido”.
- Se não bater, “senha incorreta”.
Teoria usada:
- Comparação de strings para saber se duas senhas são iguais.
- Acesso a elementos de array pelo índice.
Passo 5
Vamos juntar tudo num pseudocódigo (estilo Python) bem simples:
usuarios = []
senhas = []
MAX = 10
# Cadastro
while len(usuarios) < MAX:
nome = input("Cadastro - Digite usuário (ou ENTER para parar): ")
if nome == "":
break
if nome in usuarios:
print("Usuário repetido! Tente outro nome.")
continue
senha = input("Cadastro - Digite senha: ")
usuarios.append(nome)
senhas.append(senha)
print("Cadastro OK! Você tem", len(usuarios), "de", MAX, "cadastros.")
# Login
nome_login = input("Login - Usuário: ")
senha_login = input("Login - Senha: ")
if nome_login not in usuarios:
print("Usuário não encontrado.")
else:
i = usuarios.index(nome_login)
if senha_login == senhas[i]:
print("Login bem-sucedido!")
else:
print("Senha incorreta.")
Resposta
Acima está a solução passo a passo, com as estruturas de dados (listas), loops para cadastro limitado e verificações de duplicata e de credenciais no login.