Problema
Estás trabajando como desarrollador(a) junior en un equipo que está creando un sistema para ayudar en el control de asistencia en eventos en línea. El equipo necesita un algoritmo que procese la lista de participantes y envíe un correo electrónico de agradecimiento solo a quienes asistieron a toda la transmisión en vivo.
“Queremos automatizar el envío de agradecimientos. Pero solo para quienes vieron la transmisión de principio a fin. ¿Puedes organizar este proceso en un algoritmo?”
Utiliza los conocimientos sobre algoritmos para construir una solución en lenguaje natural, con etapas claras y ejecutables.
Considera:
- ¿Cuáles son los datos de entrada necesarios?
- ¿Cómo puede el algoritmo verificar la condición de asistencia completa?
- ¿Qué decisión necesita tomarse con base en esos datos?
- ¿Cuál debe ser la acción final?
Propuesta
Datos de entrada necesarios: Para que el algoritmo funcione, se necesita:
- Lista de participantes registrados (nombre y correo electrónico de cada uno)
- Hora de inicio y hora de fin de la transmisión en vivo
- Un registro de conexión por participante (hora en la que se conectó y hora en la que se desconectó)
Verificación de la condición: Por cada participante, el algoritmo debe comparar su hora de conexión y desconexión contra los tiempos oficiales del evento. La condición que debe cumplirse es que la hora de conexión sea igual o anterior al inicio de la transmisión, y la que hora de desconexión sea igual o posterior al fin de la transmisión.
Decisión basada en los datos: Una vez evaluada esa condición, el algoritmo toma una decisión binaria. Si el participante cumple ambas condiciones, se lo marca como asistente. Si no (llegó tarde, se fue antes, o ambas), se lo excluye del envío.
Acción final: Para cada participante marcado como asistente completo, el sistema envía automáticamente un correo electrónico de agradecimiento a la dirección registrada.
Teniendo todo eso en cuenta, el algoritmo paso a paso quedaría más o menos como:
- Obtener la hora de inicio y fin de la transmisión.
- Obtener la lista de participantes con sus datos de conexión
- Para cada participante en la lista:
- Si su hora de conexión es menor o igual a la hora de inicio, y su hora de desconexión es mayor o igual a la hora de fin: Enviar correo de agradecimiento.
- Si no, no realizar ninguna acción.
- Fin del proceso.