Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Automatizando tarefas

Receber(Nome, E-mail)
Validar(hora de login, hora logoff)
Comparar(hora de login, hora de corte de login)
Comparar(hora de logoff, hora de corte de logoff)
Se(ambas verdadeiras)
enviar e-mail
senão
não enviar e-mail

Ou validações de tempo em tempo ao longo do evento

Receber(Nome, E-mail)
iniciar(Hora de inicio evento)
Enquanto(evento, online)
verificar(usuários, status online)
Se(online, todas verificações)
enviar e-mail
senão
não enviar e-mail

2 respostas
solução!

Oi, Jefferson.

A construção de algoritmos é um passo fundamental pra transformar problemas complexos em processos que o computador consegue executar. Você trouxe duas abordagens interessantes: uma focada em horários fixos de entrada e saída e outra baseada em verificações contínuas durante o evento. Ambas são válidas, dependendo de como os dados são coletados pelo sistema.

Pra tornar o seu raciocínio ainda mais estruturado, podemos detalhar esse processo seguindo a lógica do pensamento computacional.

1. Dados Necessários (Entrada)

  • Lista de participantes: Nome e endereço de e-mail.
  • Dados de conexão: Horário em que o usuário entrou e horário em que saiu.
  • Referência do evento: Horário oficial de início e horário oficial de término da transmissão.

2. Processamento e lógica

O ponto central aqui é a comparação. O algoritmo precisa subtrair o horário de entrada do horário de saída para encontrar o tempo total de permanência e comparar esse valor com a duração do evento.

3. Passo a passo do algoritmo

  1. Definir a duração total da transmissão (exemplo: 120 minutos).
  2. Acessar a lista com os dados de todos os inscritos.
  3. Para cada participante da lista, realizar as seguintes subetapas:
  • Calcular a diferença entre o horário de saída e o horário de entrada.
  • Verificar se esse resultado é igual ou superior à duração total definida no passo 1.
  • Se a condição for verdadeira, enviar o e-mail de agradecimento para o endereço cadastrado.
  • Caso contrário, ignorar e passar para o próximo nome da lista.
  1. Finalizar o processo após percorrer todos os nomes.

Diferença entre as suas abordagens:

A sua segunda sugestão (verificações de tempo em tempo) é muito útil para evitar que alguém apenas entre no início e volte no final para simular presença. Em sistemas reais de transmissão, chamamos isso de heartbeat (batimento cardíaco): o sistema checa a cada 5 ou 10 minutos se o usuário ainda está com a aba aberta.

Se você utilizar essa lógica de "verificação constante", o algoritmo mudaria levemente:

  • O sistema conta quantas vezes o usuário estava "Online" durante as checagens.
  • Se o número de presenças confirmadas for igual ao número total de checagens feitas, o e-mail é enviado.

Essa é uma forma bastante segura de garantir que o objetivo de "assistir do início ao fim" foi cumprido.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Perfeito.
Muito obrigado Lorena Garcia :)