1
resposta

Desafio: Automatizando tarefas

Controle de presença em eventos online

  1. Dados de entrada necessários para o algoritmo:
  • Lista de participantes inscritos
  • Registro de acesso (log) contendo: (Nome ou e-mail do participante / Horário de entrada /Horário de saída)
  • Horário oficial do evento: (Início /Fim da transmissão)
  1. Lógica para confirmação de presença:
    Condição principal: horário de entrada (início do evento) e horário de saída (término evento) - ambos com certa tolerância
    Entrada menor ou igual - horário de início +5minutos e Saída maior ou igual horário de término + 5 minutos
  2. Decisão - cumpriu os requisitos - recebe e-mail. Não cumpriu. Não recebe.
  3. Algoritmo em linguagem natural (passo a passo)
    1. Iniciar o processo
    2. Receber a lista de participantes e os registros de acesso
    3. Definir o horário de início e fim do evento
    4. Definir uma tolerância de minutos (5 minutos)
    5. Para cada participante da lista: Localizar seu registro de entrada e saída
      Verificar: Se o horário de entrada é menor ou igual ao início + tolerância /E se o horário de saída é maior ou igual ao fim − tolerância
    6. Se ambas as condições forem verdadeiras: Marcar participante como “presença completa” e Enviar e-mail de agradecimento
    7. Caso contrário: Não enviar e-mail
    8. Repetir o processo até verificar todos os participantes
    9. Encerrar o algoritmo
  4. Enviar automaticamente o e-mail somente para quem assistiu ao evento completo
1 resposta

O segredo de um bom algoritmo é prever as "exceções" (o que pode dar errado) antes mesmo de começar a programar!

Tudo se basea em uma operação de lógica booleana. O e-mail só é disparado se o resultado da seguinte expressão for VERDADEIRO

(Entrada [menor ou igual] Inicio + Margem) ^ (Saida [maior ou igual] Fim - Margem)