Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

3
respostas

Desafio: Automatizando tarefas

Você está trabalhando como pessoa desenvolvedora júnior em uma equipe que está criando um sistema para auxiliar no controle de presença em eventos online. O time precisa de um algoritmo que processe a lista de participantes e envie um e-mail de agradecimento apenas para quem participou de toda a transmissão ao vivo.

“Queremos automatizar o envio de agradecimentos. Mas só para quem assistiu à transmissão do início ao fim. Você consegue organizar esse processo em um algoritmo?”

Utilize os conhecimentos sobre algoritmos para construir uma solução em linguagem natural, com etapas claras e executáveis.

Considere:

Quais são os dados de entrada necessários?
Como o algoritmo pode verificar a condição de presença completa?
Que decisão precisa ser tomada com base nesses dados?
Qual deve ser a ação final?

resposta

1- Obter hora que o evento começou e terminou.
2- Obter hora que a pessoa entrou e hora que a pessoa saiu.
3- Comparar os horarios de entrada com o de inicio, dando um pequeno tempo de desconto.
3.1- se horario de entrada <=10 minutos ou >9 & <=10 minutos a mais continuar. se >10 minutos encerar
4- Comparar o horario de saida com o de termino.
4.1- se horario de entrada <=10 minutos ou >9 & <=10 minutos a mais continuar. se >10 minutos encerar
5- Calcular a duraçao do evento e o tempo onli da pessoa.
5.1- pegar a hora do termino e subitrair a hora de inicio.
6- Obter tempo online da pessoa.
7- compara duraçao do evento com o tempo online da pessoa
7.1- se tempo online < que duraçao do evento encerar.
8- obter email da pessoa.
9- disparar agradecimento.

3 respostas

Oi, Tairone. Tudo bem com você?

Gostei da forma como você estruturou o algoritmo para automatizar o envio de e-mails de agradecimento. Sua solução contempla os principais elementos esperados na atividade, como a definição dos dados de entrada, a verificação das condições, a tomada de decisão e a ação final. A lógica ficou organizada e permite entender facilmente o fluxo do processo.

Há apenas um detalhe que vale a pena observar. No item 4.1, a condição menciona novamente o horário de entrada, quando o esperado seria validar o horário de saída em relação ao término do evento. Fora isso, a ideia de considerar uma tolerância de até 10 minutos é uma adaptação válida para um cenário real, desde que essa regra faça parte dos requisitos do sistema. Em muitas plataformas de eventos, por exemplo, existe uma margem para lidar com atrasos de conexão ou pequenas quedas de internet sem prejudicar o participante.

Se esse algoritmo fosse utilizado em um evento com milhares de participantes, como você adaptaria essa lógica para processar automaticamente toda a lista de pessoas sem precisar verificar uma por uma manualmente?

Parabéns por compartilhar sua resolução. Continue praticando e trazendo suas soluções para o fórum. Estamos à disposição para ajudar no que precisar.

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

"Se esse algoritmo fosse utilizado em um evento com milhares de participantes, como você adaptaria essa lógica para processar automaticamente toda a lista de pessoas sem precisar verificar uma por uma manualmente?"

Realmente n sei. todas as coisas que penso passam por conferir as informaçoes de cada um. mesmo que tudo fosse junto em um umico bloco de informaçoes ainda teria que haver uma verificaçao.

Oi, Tairone.

Na prática, a verificação continua acontecendo para cada participante, mas, em vez de analisar cada caso manualmente, o algoritmo aplica a mesma regra para todos de forma automática. O algoritmo poderia percorrer toda a lista de participantes usando uma estrutura de repetição, como um para cada ou enquanto, aplicando a mesma regra para todos. Para cada registro, ele compara os horários de entrada e saída com os horários do evento e, se a condição for atendida, adiciona o e-mail à lista de envio. Assim, mesmo com milhares de participantes, o processo é executado de forma automática e muito mais rápida.

Sua observação faz sentido, pois cada participante realmente precisa ser validado. O ganho está em deixar essa tarefa sob responsabilidade do algoritmo, tornando o processo rápido, escalável e repetível.