1
resposta

Desafio: Automatizando tarefas

Eu começaria pegando a lista de participantes com os horários que cada um entrou e saiu da transmissão, porque sem isso não consigo saber quem ficou até o final. Também preciso saber quanto tempo durou a transmissão inteira, do começo ao fim, para ter um parâmetro de comparação.
Depois eu faria o seguinte: para cada pessoa que participou, eu calcularia quanto tempo ela realmente assistiu, subtraindo a hora que saiu da hora que entrou. Aí eu comparo esse tempo com a duração total da transmissão. Se a pessoa ficou o tempo todo ou quase o tempo todo, ela recebe o e-mail de agradecimento. Se saiu no meio do caminho, ela não recebe nada.
Na prática, o processo seria assim: eu pego uma pessoa da lista, vejo quando ela entrou e quando saiu, faço a conta de quanto tempo ela ficou, comparo com o tempo total do evento. Se bater ou for bem próximo, eu mando o e-mail pra ela. Depois faço a mesma coisa com a próxima pessoa, e assim por diante até terminar a lista.
A parte mais importante é definir se a pessoa precisa ter ficado exatamente o tempo todo ou se uma pequena margem de erro é aceitável, porque na prática sempre tem gente que entra um minutinho atrasado ou sai um minutinho antes. Mas a lógica básica é essa: calcular o tempo de cada um, comparar com o total e decidir se manda e-mail ou não.

1 resposta

Olá, João. Como vai?

Excelente resolução para o desafio! Você aplicou de forma muito clara os conceitos de algoritmos e estruturas de repetição para resolver um problema que, se feito manualmente, seria exaustivo e suscetível a erros.

Sua abordagem demonstra uma ótima compreensão do fluxo lógico necessário para automação. Gostaria de destacar alguns pontos técnicos muito interessantes na sua solução:

  • Definição de Parâmetros: Você identificou corretamente que, antes de processar os dados, precisamos de um referencial (a duração total da transmissão). Sem essa "âncora", os dados individuais de entrada e saída ficariam sem contexto.
  • Laço de Repetição (Loop): Quando você diz "faço a mesma coisa com a próxima pessoa, e assim por diante", você descreveu o que chamamos na programação de for loop ou while loop. É a capacidade do computador de repetir a mesma lógica para milhares de itens em milissegundos.
  • Margem de Tolerância: Sua observação sobre a "margem de erro" é fundamental na computação real. Em vez de buscar uma igualdade absoluta (Tempo Assistido == Tempo Total), usamos uma lógica de limiar (ex: Tempo Assistido >= 90% do Tempo Total). Isso torna o sistema muito mais robusto e justo para o usuário.

Para complementar seu aprendizado, veja como esse "algoritmo" que você escreveu em português ficaria estruturado em uma lógica de pseudocódigo:

duracao_total = 120 # minutos
minimo_para_ganhar = duracao_total * 0.9 # 90% de presença

para cada participante na lista:
    tempo_permanencia = hora_saida - hora_entrada
    se tempo_permanencia >= minimo_para_ganhar:
        enviar_email_agradecimento(participante)
    senao:
        ignorar(participante)

Essa estruturação mental é o que chamamos de pensamento algorítmico. Você pegou um objetivo (agradecer quem ficou até o final) e o transformou em uma sequência finita de passos lógicos.

Espero que possa ter lhe ajudado!