Ejercicios: Pensamiento Algorítmico
En este primer capítulo no escribiremos código todavía. Vamos a entrenar algo más difícil: el pensamiento lógico y secuencial. La mayoría de los principiantes quiere correr al teclado, pero la habilidad que de verdad separa a un programador que resuelve problemas de uno que solo escribe código se entrena antes de abrir cualquier editor.
Una computadora hace exactamente lo que le dices, ni más ni menos, así que tienes que ser explícito en cada paso.
Ejercicio 1.1: El Robot del Café
Imagina que debes programar un robot para preparar una taza de café instantáneo. Escribe una lista numerada con los pasos necesarios.
- Requisito: Asume que el robot ya está en la cocina, frente a los ingredientes.
- Ojo: No olvides detalles como “calentar el agua” o “revolver”. Si no le dices que revuelva, el café quedará flotando encima.
Pista 1: Imagina que el robot no sabe nada de café: ni que el agua se calienta antes de usarse, ni que el polvo se disuelve solo si alguien revuelve.
Pista 2: Separa cada micro-acción en su propia línea (tomar la taza, abrir el frasco, medir la cantidad, verter el agua, revolver) en vez de agrupar varios movimientos en un solo paso.
Ejercicio 1.2: Instrucciones de Dirección (Lógica Espacial)
Escribe un algoritmo para guiar a una persona con los ojos vendados desde la puerta de tu habitación hasta la silla más cercana.
- Usa solo comandos simples: “Avanza X pasos”, “Gira 90 grados a la derecha/izquierda”, “Detente”.
- Trata de ser lo más preciso posible estimando los pasos.
Pista 1: Piensa en el recorrido como una serie de tramos rectos separados por giros; no mezcles ambas cosas en la misma instrucción.
Pista 2: Numera cada paso y sé literal con los grados de giro (90°, 180°) en vez de usar palabras vagas como “gira un poco”.
Ejercicio 1.3: La Lámpara no Funciona (Depuración)
Aquí no basta con describir el problema: hay que diagnosticarlo. Estás en una habitación oscura y la lámpara no prende. Escribe una lista de pasos con decisiones para encontrar la falla: en cada paso haces una pregunta de sí/no y cada respuesta te manda a una acción o al siguiente paso. (Los profesionales dibujan esto como “diagrama de flujo”; la versión en texto vale igual.)
- Ejemplo:
- ¿Está enchufada?
- NO: Enchúfala.
- SÍ: Paso 2.
- ¿Está quemado el foco?
- …
- ¿Está enchufada?
Pista 1: Ordena las preguntas de la más rápida de verificar a la más lenta; revisar el enchufe toma segundos, cambiar el foco toma más.
Pista 2: Cada pregunta debe tener exactamente dos ramas (SÍ/NO), y cada rama debe apuntar a una acción concreta o al siguiente número de paso. No dejes ninguna rama sin destino.
Ejercicio 1.4: Clasificación de Inventario (Abstracción)
Imagina que eres el gerente de un almacén. Tienes los siguientes objetos desordenados en una mesa:
- Manzanas
- Martillos
- Peras
- Destornilladores
- Camisas
- Pantalones
Diseña un sistema de reglas (algoritmo) para que un empleado separe estos objetos en tres cajas etiquetadas. ¿Cuál es el criterio lógico para cada caja? (Ej: “Si es comestible, va a la caja A”).
Pista 1: Busca una característica compartida entre los objetos (se come, se usa como herramienta, se usa como ropa) antes de pensar en las cajas.
Pista 2: Escribe la regla de cada caja como una condición explícita (“SI es comestible, va a la caja A”) y revisa que ningún objeto cumpla dos condiciones a la vez.
Ejercicio 1.5: El Algoritmo de tu Mañana
Tu rutina matutina ya es un programa. Lo ejecutas cada día sin pensar. Escríbelo como algoritmo, desde que abres los ojos hasta que sales de casa (o te sientas a trabajar).
- Reto: Incluye al menos dos decisiones (condicionales).
- Ejemplo: “SI llueve, tomo el paraguas. SI NO, llevo lentes de sol.”
- Ejemplo: “SI es tarde, no desayuno. SI NO, preparo tostadas.”
Pista 1: Primero escribe la secuencia sin decisiones: solo la lista lineal de lo que haces cada mañana, en orden.
Pista 2: Revisa esa lista y busca los puntos donde el siguiente paso depende de algo (el clima, la hora); ahí conviertes ese paso en un “SI … ENTONCES … SI NO …”.
Nota: ¿te diste cuenta de cuántas micro-decisiones tomas automáticamente? Programar es hacer conscientes y explícitas esas decisiones.
Soluciones: en el Apéndice B está la solución de cada ejercicio. Inténtalo por tu cuenta antes de consultarla.
En el próximo capítulo dejamos la teoría y preparamos tu entorno de trabajo, tu taller, para escribir tu primera línea de código.