1
resposta

[Projeto] Desafio: Automatizando tarefas

  1. Quais são os dados de entrada necessários?
  • Tempo total da transmissão;
  • Lista de participantes;
  • Tempo que cada participante permaneceu na transmissão;
  • Tempo mínimo necessário para considerar presença completa (Tempo minimo neste caso pois, os participantes nao entraram no mesmo instante que a transmissao comecar como Exemplo: transmissão de 5 horas → mínimo de 4h50).
  1. Como o algoritmo pode verificar a condição de presença completa?
    Comparar o tempo que cada participante permaneceu na transmissão com o tempo mínimo definido.
    Se o tempo assistido for igual ou maior que o mínimo exigido, considera-se presença completa.

  2. Que decisão precisa ser tomada com base nesses dados?
    Para cada participante:

Se o tempo assistido for igual ou maior que o tempo mínimo → marcar como MM (Mínimo ou Maior);
Se o tempo assistido for menor que o tempo mínimo → marcar como N (Não atingiu o tempo mínimo).

  1. Qual deve ser a ação final?

Participantes classificados como MM recebem o e-mail de agradecimento;
Participantes classificados como N não recebem o e-mail;

(nao tenho certeza se o jeito como usei os as letras (MM) e (N) como ”valores” esta certa)

1 resposta

Olá, Bruno. Como vai?

Parabéns pela excelente resolução do desafio! O seu raciocínio lógico foi cirúrgico e você demonstrou uma ótima visão de mundo real ao introduzir o conceito de tempo mínimo de tolerância (como o seu ótimo exemplo de exigir 4h50 em uma transmissão de 5h). Na prática, conexões caem, pessoas atrasam alguns minutos e ter essa margem de segurança é uma regra de negócio essencial para evitar injustiças com os participantes.

Respondendo diretamente à sua dúvida sobre o uso das letras MM e N como valores: sim, o seu raciocínio está absolutamente correto! Na programação, essas letras funcionam como Tags (etiquetas) ou Flags (bandeiras). Elas pertencem ao tipo de dado que chamamos de String (texto) e são perfeitas para categorizar ou filtrar elementos dentro de uma lista antes de tomar a ação final.

Para ajudar a visualizar como a sua classificação por etiquetas organiza o fluxo e a tomada de decisão do sistema, veja este fluxograma do processo:

Para enriquecer ainda mais o seu projeto e mostrar como essa sua lógica de etiquetado fica elegante no desenvolvimento real, separei duas dicas de boas práticas:

1. Uma Alternativa de Mercado: O Tipo Booleano

Embora usar MM e N funcione perfeitamente, no dia a dia do desenvolvimento de software, quando temos apenas duas opções possíveis (sim ou não, verdadeiro ou falso), a melhor prática é usar o tipo de dado Booleano (True ou False).

Em vez de criar uma etiqueta de texto, você poderia definir uma variável chamada presenca_completa. Se atingiu o tempo mínimo, ela vira True (Verdadeiro); se não, vira False (Falso). Isso deixa o código mais rápido e limpo!

2. Tradução para Código Python com a sua Lógica

Para ver como o seu pensamento estruturado opera linha por linha, veja o seu algoritmo traduzido para Python utilizando as suas etiquetas exatamente como você planejou:

# Simulando os dados de entrada
duracao_minima = 290  # 4h50 Convertidas em minutos
lista_participantes = [
    {"nome": "Ana", "email": "ana@email.com", "tempo_assistido": 300},
    {"nome": "Bruno", "email": "bruno@email.com", "tempo_assistido": 285},
    {"nome": "Carlos", "email": "carlos@email.com", "tempo_assistido": 295}
]

# Processamento e Decisão
for participante in lista_participantes:
    # Verifica a condição de presença completa
    if participante["tempo_assistido"] >= duracao_minima:
        participante["status"] = "MM"  # Sua tag de Mínimo ou Maior
    else:
        participante["status"] = "N"   # Sua tag de Não atingiu

# Ação Final baseada na sua classificação
for participante in lista_participantes:
    if participante["status"] == "MM":
        print(f"Enviando e-mail de agradecimento para: {participante['nome']} ({participante['email']})")
    else:
        print(f"Participante {participante['nome']} não atingiu o tempo mínimo. E-mail retido.")

Note que o resultado final separa perfeitamente quem deve ou não receber o e-mail com base nas etiquetas que você desenhou. Você demonstrou uma excelente base de pensamento computacional e arquitetura de soluções. Continue com esse ótimo empenho!

Espero que possa ter lhe ajudado!