1
resposta

[Projeto ] Desafio: Automatizando tarefas

1-Dados de Entrada: O algoritmo precisa receber as informações:
-Lista de participante;
-horário de entrada de cada participante;
-horário de saída de cada participante;
-duração total da transmissão;
-e-mail dos participantes.

2-Verificação da presença completa: o código deve calcular quanto tempo cada participante permaneceu conectado
Tempo assistido = horário de saída - horário de entrada

Fazer comparação: tempo assistido com duração total do evento

3-Decisão do algoritmo

  • Se o participante assistiu todo o evento (ou tempo igual / maior que o mínimo definido), então ele recebe o e-mail
  • Senão o sistema não envia o agradecimento;

Ação Final: enviar automaticamente um e-mail de agradecimento apenas para os participantes que acompanharam toda a transmissão.

4-Algoritimo em linguagem natural

Início

Receber lista de participantes (horário entrada, horário saída, e-mail)
Receber duração total da transmissão

Para cada participante da lista:

Calcular o tempo assistido
Comparar o tempo assistido com a duração total do evento

Se o tempo assistido for igual ou maior que a duração do evento:
    Enviar e-mail de agradecimento

Senão:
    Não enviar e-mail

Fim

1 resposta

Olá, Paola. Como vai?

Parabéns pela excelente resolução do desafio! O seu algoritmo em linguagem natural ficou impecável, cobrindo perfeitamente todas as etapas essenciais do pensamento computacional. Você mapeou muito bem as variáveis necessárias e estruturou de forma muito clara o laço de repetição (Para cada participante) e a tomada de decisão com a estrutura condicional (Se / Senão).

Gostaria de destacar alguns pontos fortes do seu projeto e trazer uma pequena sugestão de boa prática do mundo real da programação que pode enriquecer ainda mais a sua lógica:

Pontos Fortes do seu Algoritmo

  • Cálculo Dinâmico: A lógica aplicada no item 2 para descobrir o tempo de permanência (Tempo assistido = horário de saída - horário de entrada) é excelente e está matematicamente correta.
  • Condição Ampla: No item 3, você citou o uso do tempo "igual ou maior que o mínimo definido". Isso é uma grande boa prática na programação, pois protege o código contra pequenas variações de minutos que poderiam acontecer caso a transmissão passasse um pouquinho do tempo previsto.

Uma Sugestão de Boa Prática: O "Filtro de Segurança" para Horários

No mundo real, quando trabalhamos com registros de entrada e saída em transmissões online, é muito comum que ocorram quedas de conexão ou que o participante entre e saia várias vezes.

Para que o seu algoritmo fique blindado contra esses cenários do dia a dia, uma ótima prática é adicionar uma etapa de acumulação de tempo, em vez de considerar apenas um único horário de entrada e de saída.

Veja como o seu algoritmo em linguagem natural ficaria ainda mais robusto com essa pequena adaptação:

Início
    Receber lista de participantes (registros de acessos, e-mail)
    Receber duração total da transmissão

    Para cada participante da lista:
        Somar todos os períodos conectados do participante (Tempo Total Assistido)
        
        Se o Tempo Total Assistido for maior ou igual à duração da transmissão:
            Enviar e-mail de agradecimento para o e-mail do participante
        Senão:
            Não enviar e-mail
        FimSe
    FimPara
Fim

Para ajudar a visualizar como a sua tomada de decisão opera linha por linha dentro da estrutura de repetição que você criou, preparei este fluxo lógico do processo:

Você demonstrou uma excelente base de lógica e pensamento estruturado. Continue com esse ótimo foco nos estudos!

Espero que possa ter lhe ajudado!