1
resposta

Resolução

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? **

* Usuário logado na plataforma 
* Inscrito no evento 
* Constar hora de acesso ao evento 
* Constar hora de saída do evento 
* Constar hora de início do evento 
* Constar hora de fim do evento 

**Como o algoritmo pode verificar a condição de presença completa? **

* Tempo de acesso do usuário no evento 

**Que decisão precisa ser tomada com base nesses dados? **

1. Usuário logado? 

        * Sim 
            * 	Inscrito no evento? 

                * Sim 
                    * Acessou o evento? 

                        * Sim 
                            * No início do evento? 

                                    * Sim 
                                            * Permanência total no  evento

                                                    * Sim 
                                                            **Enviar E-mail de agradecimento **

                                                    * Não 
                                                            **Não enviar E-mail **

                                    * Não 
                                             **FIM** 

                        * Não
                                **Enviar lembrete de evento(10 minutos antes do início) **

        * Não 
                **Encaminhar para inscrição no evento** 

* Não 
        **Solicitar login **

**Qual deve ser a ação final? **

* Permanência total no evento((hora de saída do evento - hora de acesso ao evento) >= (hora de fim do evento - hora de início do evento)) 
        *Sim 
                **Enviar E-mail de agradecimento **
            
        *Não 
                **Não enviar E-mail **
1 resposta

Oii, Amilson.

Agradeço por compartilhar. Gostei de como você organizou as entradas e as decisões em etapas bem claras, e importante: sua condição final de permanência (comparando o tempo conectado com a duração do evento) deixa o critério objetivo e executável. Continue praticando esse tipo de decomposição em perguntas “Sim/Não”, porque isso facilita muito transformar a ideia em código depois.

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