Oii, Yan!
Sua resposta demonstra um ótimo raciocínio lógico, especialmente ao incluir uma margem de tolerância (aqueles 15 minutos que você mencionou). Na prática do desenvolvimento, prever esse tipo de comportamento do usuário é o que diferencia um sistema rígido de um sistema funcional.
Notei que você estruturou o pensamento com o "início" e "fim", o que é excelente para delimitar o escopo do algoritmo.
- Regra de negócio: A ideia de permitir uma saída rápida (15 minutos) sem desclassificar o participante é muito próxima do que acontece em sistemas reais de eventos.
- Fluxo de dados: Você identificou corretamente que os dados (e-mails) precisam ser buscados em uma fonte externa, como o banco de dados.
Sugestões de melhoria:
Pra que seu algoritmo fique mais alinhado ao pensamento computacional, tente detalhar a repetição. Quando temos uma lista de pessoas, o sistema precisa olhar para uma por uma.
E, em lógica de programação, evite usar termos como "recolher" de forma genérica. Tente descrever a ação como uma verificação individual dentro de um conjunto.
Olha como poderíamos detalhar essas etapas:
- Obtenha a Lista de Participantes e o Tempo Total da Transmissão.
- Para cada Participante na lista:
- Calcule o tempo em que ele esteve presente.
- Verifique se o tempo presente é maior ou igual ao tempo total (menos a tolerância de 15 minutos).
- Se a condição for verdadeira: busque o e-mail no banco de dados e envie a mensagem de agradecimento.
- Senão: passe para o próximo participante.
- Finalize o processo após percorrer toda a lista.
O uso de estruturas de decisão (Se/Senão) ajuda muito na hora de escrever o código final.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!