Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Solução: Envio de e-mail considerando tempo mínimo de audiência

O objetivo é enviar um e-mail de agradecimento para participantes que assistiram à maior parte da transmissão, respeitando uma tolerância de atraso e saída antecipada.

  1. Dados de entrada necessários
  • Lista de participantes do evento
  • Para cada participante:
    • Nome
    • E-mail
    • Horário de entrada na transmissão
    • Horário de saída da transmissão
  • Horário oficial de início da transmissão
  • Horário oficial de término da transmissão
  • Tempo mínimo de audiência permitido (exemplo: 90% da duração total)
  • Tolerância de atraso na entrada (exemplo: até 5 minutos)
  • Tolerância de saída antecipada (exemplo: até 5 minutos)
  1. Cálculos iniciais
  • Calcular a duração total da transmissão
    • duração_total = horário_término − horário_início
  • Para cada participante:
    • Calcular o tempo assistido
    • tempo_assistido = horário_saida − horário_entrada
  1. Verificação da condição de presença válida
    Para cada participante, verificar se:
  • O horário de entrada é maior ou igual ao horário de início menos a tolerância definida
  • O horário de saída é menor ou igual ao horário de término mais a tolerância definida
  • O tempo assistido é maior ou igual ao tempo mínimo de audiência definido
  1. Decisão baseada nos dados
  • Se todas as condições forem atendidas:
    • Marcar o participante como elegível
  • Senão:
    • Não considerar o participante para o envio do e-mail
  1. Ação final
  • Enviar o e-mail de agradecimento apenas para os participantes elegíveis
  • Finalizar o processo

O que foi levado em consideração aqui:

  1. Participantes que acompanharam praticamente todo o evento recebem o agradecimento
  2. Pequenos atrasos ou saídas antecipadas não prejudicam quem realmente participou
  3. A regra é justa, clara e facilmente ajustável no sistema

Pseudocódigo

INÍCIO

// Definição dos horários oficiais do evento
definir HORARIO_INICIO_EVENTO
definir HORARIO_FIM_EVENTO

// Regras de tolerância e audiência mínima
definir TOLERANCIA_ENTRADA = 5 minutos
definir TOLERANCIA_SAIDA = 5 minutos
definir PERCENTUAL_MINIMO_AUDIENCIA = 90%

// Cálculo da duração total da transmissão
calcular DURACAO_TOTAL = HORARIO_FIM_EVENTO - HORARIO_INICIO_EVENTO

// Percorre todos os participantes
para cada PARTICIPANTE na LISTA_DE_PARTICIPANTES faça

    // Coleta os horários do participante
    obter HORA_ENTRADA do PARTICIPANTE
    obter HORA_SAIDA do PARTICIPANTE

    // Calcula o tempo e percentual assistido
    calcular TEMPO_ASSISTIDO = HORA_SAIDA - HORA_ENTRADA
    calcular PERCENTUAL_ASSISTIDO = (TEMPO_ASSISTIDO / DURACAO_TOTAL) * 100

    // Verifica se o participante atende às regras de presença
    se (HORA_ENTRADA <= HORARIO_INICIO_EVENTO + TOLERANCIA_ENTRADA) E
       (HORA_SAIDA >= HORARIO_FIM_EVENTO - TOLERANCIA_SAIDA) E
       (PERCENTUAL_ASSISTIDO >= PERCENTUAL_MINIMO_AUDIENCIA) então

        // Ação final: envio do e-mail
        enviar EMAIL_DE_AGRADECIMENTO para PARTICIPANTE

    fim se
fim para
FIM
1 resposta
solução!

Oi! Como vai?

Gostei da sua solução, principalmente pela forma como você transformou o problema em regras claras e etapas bem definidas, o que mostra um bom domínio de pensamento computacional e lógica aplicada à automação de tarefas. Sua ideia faz sentido e demonstra cuidado com critérios justos para tomada de decisão.

Continue explorando esse tipo de raciocínio estruturado, pois ele é muito importante para resolver problemas reais no dia a dia de tecnologia.

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