1
resposta

Desafio: Automatizando tarefas

Quais são os dados de entrada necessários?
Email , Tempo presente da transmissão (entradas e saídas) , Total de tempo de transmissão
Como o algoritmo pode verificar a condição de presença completa?
Checar o momento no qual o usuário entrou na transmissão , caso ele tenha entrado dentro do tempo inicial da transmissão e não tenha ficado fora por um tempo significativo até o fim da transmissão e esteja online no momento final ele ganha presença completa.
Que decisão precisa ser tomada com base nesses dados?
Supondo uma transmissão longa de 1H por exemplo.
Caso o expectador "A" tenha entrado na transmissão entre tempo de transmissão 0:00:00 até 0:03:00 (10% de tolerância) , não ter saído e entrado novamente com intervalos que somem mais de 5 minutos (possível queda de conexão ou algo do tipo) e estar online durante os momentos final 0:57:00 a 1:00:00 "A" está apto a receber o E-mail.
Qual deve ser a ação final?
Ao obter a lista completa de expectadores aptos disparar um email de agradecimento a todos.

1 resposta

Olá, Pedro. Como vai?

Sua resolução para o desafio de automação demonstra um excelente domínio do Pensamento Computacional, especialmente no pilar de Design de Algoritmos. Você não apenas definiu a lógica, mas estabeleceu parâmetros quantitativos (como os 10% de tolerância e o limite de 5 minutos para quedas de conexão), o que é fundamental para transformar uma ideia abstrata em um código funcional.

Essa abordagem de criar "janelas" de verificação (início, meio e fim) é muito utilizada em sistemas de webinars e plataformas de cursos para validar o engajamento real do usuário.

Para complementar sua lógica e ajudar na implementação desse algoritmo, deixo algumas sugestões técnicas:

  • Abstração de Dados: Para facilitar o cálculo, você pode converter todos os horários para segundos. Isso torna as operações matemáticas de soma e subtração muito mais simples do que lidar com o formato de horas/minutos.
  • Refinamento da Condição: Você pode utilizar uma variável do tipo acumuladora para somar o tempo total de permanência. Se tempo_total_permanencia >= (tempo_total_transmissao - tolerancia), o usuário é marcado como apto.
  • Automação de Saída: Na ação final, além do disparo do e-mail, seria interessante prever a geração de um relatório (log) para que os organizadores saibam quem recebeu e quem não recebeu o comunicado, permitindo auditorias rápidas.

Veja como essa lógica de decisão poderia ser escrita em um pseudocódigo simples:

Se (tempo_entrada <= 3 minutos) E (soma_intervalos_fora <= 5 minutos) E (esta_online_no_final == Verdadeiro) Entao
    Adicionar_Lista_Aptos(email_usuario)
Senao
    Marcar_Como_Incompleto(email_usuario)
FimSe

Essa estruturação lógica garante que o sistema seja justo com quem teve pequenos problemas técnicos, mas rigoroso com a participação efetiva. Parabéns pela excelente análise!

Espero que possa ter lhe ajudado!