Contenido del curso
Estructuras de datos básicas
Operaciones, comparaciones y lógica
Control del flujo y modularidad
Aplicaciones prácticas
Variables y condicionales en algoritmos
Resumen
Cuando intentas resolver el acertijo de cruzar el puente con linterna, descubres dos herramientas fundamentales del pensamiento algorítmico: las variables y las estructuras condicionales. Ambas te permiten registrar el tiempo acumulado y validar si tu estrategia cumple con el límite de 15 minutos.
¿Cómo se diseña la primera estrategia para cruzar el puente?
Antes de programar, conviene listar los datos. Tú tardas un minuto, Pedro dos, Juana cinco y Carla ocho. La intuición dice que los lentos deben cruzar una sola vez y que los rápidos sean quienes regresen con la linterna.
La primera versión del plan asume que tú, el más rápido, siempre vuelves:
- Cruzas con Carla: 8 minutos acumulados.
- Vuelves solo: 9 minutos.
- Cruzas con Juana: 14 minutos.
- Vuelves solo: 15 minutos.
- Cruzas con Pedro: 17 minutos.
El resultado son 17 minutos, dos por encima del límite. Además, llevar la cuenta del tiempo por fuera del diagrama vuelve poco claro el análisis. Aquí aparecen los dos problemas: la estrategia no funciona y el registro del tiempo no está integrado al algoritmo.
¿Qué es una variable y cómo se usa un acumulador?
Para resolver el segundo problema, asocias el tiempo a una palabra reservada dentro del diagrama de flujo. Esa palabra, tiempo, se convierte en tu primera variable.
¿Qué es una variable en programación? Es un contenedor que guarda un único dato y al que puedes asignarle un nombre. Cuando escribes tiempo = 0 estás declarándola e inicializándola al mismo tiempo.
Cada vez que alguien cruza, sumas su demora a lo que ya tenía guardado la variable. Esa operación, en la que el nuevo valor depende del valor anterior más algo nuevo, se llama acumulador. Es la forma natural de llevar un total dentro de un algoritmo sin salir del diagrama.
¿Cómo cambia la estrategia con la variable tiempo?
Con la variable lista, pruebas un giro: que no siempre vuelva el más rápido. La secuencia queda así:
- Cruzas con Carla [01:24]: tiempo = 0 + 8 = 8.
- Vuelves tú: tiempo = 8 + 1 = 9.
- Cruzan Pedro y Juana juntos [02:53]: tiempo = 9 + 5 = 14.
- Vuelve Pedro, el más rápido del otro lado [03:13]: tiempo = 14 + 2 = 16.
El detalle clave está en dejar que los lentos crucen una sola vez y permitir que el regreso lo haga quien convenga según el momento, no siempre el más veloz del grupo.
¿Cómo validar si la estrategia funcionó con una estructura condicional?
El objetivo del curso no es adivinar la respuesta mentalmente, sino construir un programa que pruebe estrategias y diga cuál sirve. Para eso necesitas una estructura condicional.
En el diagrama de flujo se representa con un rombo que contiene una condición a evaluar. Después del último cambio de la variable tiempo, agregas la pregunta: ¿tiempo es menor o igual a 15?
- Si la respuesta es sí, la estrategia funcionó.
- Si la respuesta es no, la estrategia no funcionó.
¿Para qué sirve una estructura condicional? Permite que el algoritmo tome decisiones distintas según se cumpla o no una condición, en lugar de seguir siempre el mismo camino.
¿Por qué conviene usar variables en vez de calcular mentalmente? Porque el algoritmo debe poder ejecutarse solo, probar muchas estrategias y devolver un resultado sin depender de tu cálculo en cada paso.
Con la variable acumulando el tiempo y el rombo evaluando el límite, ya tienes un algoritmo que se autoverifica. Cuéntame en los comentarios cuál fue tu estrategia ganadora para cruzar el puente en 15 minutos o menos.