Olá, Nebo. Como vai?
A sua estruturação do problema está excelente! Você dividiu muito bem as etapas em dados de entrada, verificação, decisão e ação final. Esse é exatamente o fluxo correto para um bom pensamento computacional.
Para agregar um pouco mais à sua solução, notei um pequeno detalhe na hora de traduzir a sua regra de negócio textual para os operadores matemáticos no passo 3.3.
No seu texto, você definiu corretamente que a pessoa precisa "entrar antes ou no horário". Porém, no bloco de código, você utilizou o símbolo de maior ou igual (>=), o que na prática da programação significaria que ela entrou depois do início. Como os horários funcionam como números crescentes (13:50 é matematicamente "menor" que 14:00), o operador correto para representar "antes ou no horário exato" seria o de menor ou igual (<=).
Veja como ficaria essa correção aplicada à sua lógica. Aproveitei para adicionar um laço de repetição (o comando PARA CADA), que é o que o computador usaria para ler a sua lista inteira de forma automatizada:
- PARA CADA participante NA lista_de_participantes:
- SE entrada <= inicio_do_evento E saida >= termino_do_evento ENTÃO:
- classificar como "Participou do evento!"
- disparar e-mail
- SENÃO:
- classificar como "Não participou!"
Dessa forma, o sistema varre todos os nomes e garante matematicamente que a pessoa chegou cedinho e ficou até o encerramento. Parabéns pelo detalhamento do seu passo a passo, a sua visão lógica está muito bem encaminhada!
Espero que possa ter lhe ajudado!