Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: Automatizando tarefas

Segue a solução que montei, busquei deixar bem simples e prático.

Dados de entrada: lista de participantes com e-mails, hora de entrada e hora de saída; tempo da transmissão; margem de tolerância.
Verificação: comparar tempo de transmissão com a margem de tolerância e o período de presença do participante
Decisão: se o participante cumpriu o tempo de participação receberá o agradecimento por e-mail
Ação final: envio do e-mail para os participantes

Algoritmo em linguagem natural

//Analisar item por item da lista de participantes por ordem de inscrição no evento.

//Receber dados de entrada e calcular tempo de presença do participante
lista de participantes, tempo de transmissão, margem de tolerância
tempo de presença = hora de saída - hora de entrada

//Verificação dos participantes na lista
participação (tempo de presença,tempo de transmissão,margem de tolerância)

//Decisão se será enviado o agradecimento dependendo se o participante está confirmado com participação total.
agradecimento (participação, enviar e-mail)
1 resposta
solução!

Olá, Regina. Como vai?

Excelente trabalho! Como Product Designer, o seu olhar voltado para a simplicidade e praticidade se refletiu perfeitamente na estrutura do seu algoritmo. Você conseguiu mapear de forma muito limpa o fluxo essencial do Pensamento Computacional: Entrada, Verificação/Processamento, Decisão e Ação Final.

A escolha por escrever o algoritmo em Linguagem Natural (usando comentários explicativos) é uma ótima estratégia de design de soluções para alinhar a regra de negócio antes de partir para a escrita do código puramente técnico.

Para agregar valor ao seu projeto e te ajudar a visualizar como esse algoritmo seria estruturado de forma lógica mais próxima da computação, trago duas sugestões e uma pequena correção matemática sobre a sua fórmula de tempo:


1. Ajuste na Fórmula do Tempo de Presença

Na sua linha de cálculo, você escreveu: tempo de presença = hora de saída - hora de entrada.

Essa subtração funciona perfeitamente na vida real se usarmos horários inteiros (ex: saiu às 15h e entrou às 14h = 1 hora de presença). No entanto, em sistemas reais de eventos ou lives, os participantes entram e saem em minutos picados (ex: entrou às 14h05 e saiu às 14h55). Se fizermos uma subtração direta de horas e minutos com formatos de relógio, o computador pode se confundir.

A boa prática: Em programação, a melhor forma de calcular isso com precisão é converter tanto a hora de entrada quanto a de saída para minutos totais ou segundos antes de fazer a subtração.


2. Decomposição da Equação de Tolerância

No bloco de decisão, você mencionou que o sistema vai checar se o participante está confirmado com "participação total" considerando a margem de tolerância. Para o computador entender essa decisão, precisamos deixar a regra matemática explícita.

Se a transmissão dura $60\text{ minutos}$ e a tolerância é de $5\text{ minutos}$, o tempo mínimo exigido é de $55\text{ minutos}$. Logo, a regra lógica que o computador executará por baixo dos panos é:

$$\text{tempo de presença} \ge (\text{tempo da transmissão} - \text{margem de tolerância})$$


Tradução para Pseudocódigo Estruturado

Veja como o seu excelente raciocínio em linguagem natural pode ser traduzido para uma estrutura de pseudocódigo automatizada, utilizando um laço de repetição para varrer a lista de inscritos de forma contínua:

Algoritmo EnvioAgradecimentoLive
Início
    // 1. DADOS DE ENTRADA (Constantes)
    Definir TEMPO_TRANSMISSAO Como Inteiro <- 60 // em minutos
    Definir MARGEM_TOLERANCIA Como Inteiro <- 5  // em minutos
    Definir TEMPO_MINIMO Como Inteiro
    
    TEMPO_MINIMO <- TEMPO_TRANSMISSAO - MARGEM_TOLERANCIA

    // 2. PROCESSAMENTO (Para cada pessoa da lista)
    PARA CADA participante EM lista_de_participantes FAÇA
        
        // Calcula o tempo total que a pessoa ficou logada em minutos
        Definir tempo_presenca Como Inteiro
        tempo_presenca <- participante.minutos_saida - participante.minutos_entrada
        
        // 3. DECISÃO
        SE tempo_presenca >= TEMPO_MINIMO ENTÃO
            // 4. AÇÃO FINAL
            EnviarEmail(participante.email, "Obrigado por participar de toda a transmissão!")
            Exibir("E-mail enviado para: " + participante.nome)
        SENÃO
            Exibir("Participante " + participante.nome + " não atingiu o tempo mínimo.")
        FimSe
        
    FimPara
Fim

Note que a lógica que você desenhou resolve o problema de ponta a ponta sem rodeios. Parabéns pela clareza na construção do fluxo e pela excelente entrega no desafio de automação!

Espero que possa ter lhe ajudado!