Boa tarde!
Agradeço se alguém puder fazer ajustes ou propor melhorias ou comentar essa proposta de solução.
Um forte abraço.
Algoritmo para Controle de Presença e Agradecimento em Eventos Online
- Dados de Entrada Necessários
Para que o algoritmo funcione, precisamos dos seguintes dados:
Lista de Participantes: Registro com o identificador de cada usuário (ex: nome ou e-mail).
Horário de Entrada de Cada Participante: Momento exato em que cada pessoa ingressou na transmissão ao vivo.
Horário de Saída de Cada Participante: Momento exato em que cada pessoa deixou a transmissão.
Duração Total do Evento: O tempo de transmissão do início ao fim (ex: 120 minutos ou "18h00 às 20h00").
- Verificação da Condição de Presença Completa
A condição para presença completa é que o participante tenha assistido a 100% da transmissão ao vivo. A forma mais precisa de verificar isso é:
Comparar o tempo de permanência do participante com a duração total do evento.
Tempo Assistido = Horário de Saída - Horário de Entrada
Presença Completa é verdadeira se e somente se:
Horário de Entrada for igual ao horário de início do evento.
Horário de Saída for igual ou posterior ao horário de término do evento.
Por que essa verificação é robusta?
Se um participante entrou depois do início, seu Tempo Assistido será menor que a Duração Total.
Se saiu antes do fim, idem.
Apenas quem esteve presente do início ao fim atenderá a essa condição.
- Decisão a Ser Tomada
Com base na verificação, o algoritmo deve tomar uma decisão binária (SIM ou NÃO) para cada participante:
SE a condição de "Presença Completa" for VERDADEIRA → Decisão: "Enviar E-mail".
SE a condição de "Presença Completa" for FALSA → Decisão: "Não Enviar E-mail".
- Ação Final
A ação final é a execução da decisão tomada na etapa anterior:
Para cada participante que cumpriu a condição, o sistema dispara automaticamente um e-mail de agradecimento.
Para os demais, o algoritmo simplesmente segue para o próximo participante, sem realizar nenhuma ação.
Algoritmo em Linguagem Natural (Passo a Passo Executável)
Aqui está o processo organizado em uma sequência lógica e clara de etapas:
INICIAR
Obtenha a Lista de Participantes com seus respectivos Horários de Entrada e Saída.
Defina o Horário de Início do Evento e o Horário de Término do Evento.
PARA CADA participante na lista, EXECUTE os passos de 3 a 6:
CALCULAR o tempo de permanência:
Tempo Assistido = Horário de Saída do Participante - Horário de Entrada do Participante
VERIFICAR a condição de presença completa:
SE (Horário de Entrada é igual ao Horário de Início do Evento) E (Horário de Saída é igual ou posterior ao Horário de Término do Evento):
Então, Presença Completa = VERDADEIRO
SENÃO:
Presença Completa = FALSO
TOMAR A DECISÃO com base na verificação:
SE Presença Completa for VERDADEIRO:
ENTÃO: Prosseguir para o passo 6.
SENÃO: Ignorar este participante e retornar ao passo 2 para verificar o próximo.
EXECUTAR A AÇÃO FINAL:
Enviar um e-mail de agradecimento para o e-mail do participante.
(Conteúdo sugerido: "Agradecemos sua participação integral em nosso evento online! Segue em anexo o certificado/material.")
FIM do loop. O algoritmo termina após processar todos os participantes da lista.
Exemplo Prático para Ilustrar
Dados do Evento:
Início: 01/10/2023 19:00
Término: 01/10/2023 21:00
Lista de Participantes:
Nome E-mail Entrada Saída
Ana ana@email.com 01/10 19:00 01/10 21:00
Bruno bruno@email.com 01/10 19:15 01/10 21:00
Carla carla@email.com 01/10 19:00 01/10 20:45
Execução do Algoritmo:
Ana: Entrou no início (19:00) e saiu no fim (21:00). → CONDIÇÃO ATENDIDA → E-mail enviado.
Bruno: Entrou após o início (19:15). → CONDIÇÃO NÃO ATENDIDA → E-mail NÃO enviado.
Carla: Saiu antes do fim (20:45). → CONDIÇÃO NÃO ATENDIDA → E-mail NÃO enviado.