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!

1
resposta

[Projeto] Desafio: Automatizando tarefas

Objetivo

Criar um algoritmo que identifique quais participantes assistiram toda a transmissão e envie um e-mail de agradecimento apenas para essas pessoas.

Dados de entrada

O sistema precisa receber:

Nome do participante;
E-mail do participante;
Informação sobre presença:

  • entrou na transmissão;
  • saiu apenas no final.
    Algoritmo em linguagem natural:
  • Iniciar o sistema;
  • Ler a lista de participantes do evento;
    Para cada participante da lista:
  • verificar se ele assistiu à transmissão completa;
  • se assistiu do início ao fim:
  • enviar e-mail de agradecimento;
    senão:
  • não enviar e-mail;
    Finalizar o processo.
1 resposta

Olá, Desire. Como vai?

Parabéns pela excelente resolução do desafio! O seu algoritmo em linguagem natural ficou impecável: claro, estruturado e lógico.

Uma das grandes habilidades do Pensamento Computacional é a decomposição, que consiste em pegar um problema complexo (como gerenciar a presença de um evento) e dividi-lo em passos menores e ordenados. Você executou isso perfeitamente, estruturando muito bem a entrada de dados e o fluxo de repetição.

Para agregar ainda mais valor ao seu aprendizado e levar o seu projeto para o próximo nível, podemos dar mais um passo rumo ao desenvolvimento de software: transformar a sua lógica em uma representação visual universal, conhecida como Fluxograma, e depois em um código funcional.

Representação Visual: Fluxograma do Processo

Em projetos reais, os desenvolvedores costumam desenhar o fluxo para que toda a equipe compreenda a regra de negócio antes mesmo de começar a programar. O caminho que você descreveu segue exatamente esta estrutura de decisão:

Levando o Algoritmo para o Código (Exemplo em JavaScript)

Para que você possa visualizar como a sua linguagem natural se transforma em instruções de computador, veja este exemplo prático simulando o seu algoritmo:

// Dados de entrada que você identificou
const participantes = [
    { nome: "Ana", email: "ana@email.com", assistiuTudo: true },
    { nome: "Carlos", email: "carlos@email.com", assistiuTudo: false },
    { nome: "Desire", email: "desire@email.com", assistiuTudo: true }
];

// Iniciar o sistema e ler a lista de participantes
participantes.forEach(participante => {
    
    // Verificar se assistiu do início ao fim (Estrutura de Condição)
    if (participante.assistiuTudo === true) {
        // Enviar e-mail de agradecimento
        console.log(`Enviando e-mail de agradecimento para: ${participante.nome} (${participante.email})`);
    } else {
        // Senão: não enviar e-mail
        console.log(`Participante ${participante.nome} não completou a transmissão. Ignorar.`);
    }
});

// Finalizar o processo
console.log("Processamento concluído com sucesso!");

O que destacar na sua solução:

  • Estrutura de Repetição (Para cada...): Essencial para automatizar a tarefa. Sem ela, o operador teria que verificar participante por participante manualmente.
  • Estrutura Condicional (se... senão): Filtra com precisão o público-alvo do e-mail, evitando spams desnecessários para quem não concluiu o evento.

Você demonstrou uma excelente base de lógica de programação. Continue firme nessa jornada!

Espero que possa ter lhe ajudado!