Condicionales
Cada día tomas decenas de decisiones sin pensarlo: si llueve, coges paraguas; si hace frío, te pones chaqueta; si el semáforo está en rojo, te paras. Tu cerebro evalúa una condición y actúa en consecuencia. Eso, exactamente eso, es lo que hacen los condicionales en programación. Son el mecanismo que permite a un programa "pensar" y tomar caminos diferentes según las circunstancias.
En esta lección vas a aprender a escribir decisiones en pseudocódigo. No necesitas ordenador, solo papel y bolígrafo. Vamos a pensar antes de programar.
La estructura SI / ENTONCES / SINO
Piensa en algo tan simple como salir de casa por la mañana. Tu cerebro hace esto:
SI esta lloviendo ENTONCES
coger paraguas
SINO
ponerse gafas de sol
FIN SI
Esa es la estructura básica de un condicional. Tiene tres partes:
- SI (la condición): algo que puede ser verdadero o falso.
- ENTONCES: lo que haces si la condición es verdadera.
- SINO: lo que haces si la condición es falsa (opcional).
Otro ejemplo cotidiano. Vas a cruzar la calle:
SI el semáforo está en verde ENTONCES
cruzar la calle
SINO
esperar
FIN SI
Fácil, ¿verdad? El truco está en que la condición siempre se reduce a verdadero o falso. No hay "quizá". O llueve o no llueve. O el semáforo está verde o no lo está.
Condicionales anidados: el árbol de decisiones
Las decisiones de la vida real no son siempre binarias. A veces, dentro de una decisión hay otra decisión. Piensa en cómo decides qué ropa ponerte por la mañana:
SI hace frío ENTONCES
SI está lloviendo ENTONCES
ponerse abrigo impermeable
SINO
ponerse jersey gordo
FIN SI
SINO
SI está lloviendo ENTONCES
ponerse chubasquero ligero
SINO
ponerse camiseta
FIN SI
FIN SI
Esto es un árbol de decisiones. Cada rama lleva a una nueva pregunta o a una acción final. Es como esos libros de "elige tu propia aventura": cada elección te lleva por un camino distinto.
Consejo: si tus condicionales anidados tienen más de 3 niveles de profundidad, probablemente necesitas reorganizar tu lógica. Un árbol demasiado profundo es difícil de seguir, tanto para humanos como para programas.
Condiciones compuestas: Y / O
Muchas veces una sola condición no basta. Necesitas combinar varias. Para eso usamos los operadores lógicos Y y O.
Y (ambas deben ser verdaderas)
Piensa en entrar a una discoteca: necesitas tener 18 años Y llevar el DNI. Si falta una de las dos, no entras.
SI edad >= 18 Y lleva DNI ENTONCES
mostrar "Puedes entrar"
SINO
mostrar "No puedes entrar"
FIN SI
O (al menos una debe ser verdadera)
Para pagar en una tienda: puedes usar tarjeta O efectivo. Con que tengas uno de los dos, puedes pagar.
SI tiene tarjeta O tiene efectivo ENTONCES
mostrar "Puede pagar"
SINO
mostrar "No puede pagar"
FIN SI
Combinando Y con O
Las condiciones se pueden combinar tanto como necesites. Imagina una promoción especial en un parque de atracciones:
SI (edad < 12 O edad >= 65) Y es día laborable ENTONCES
mostrar "Entrada con descuento: 10 euros"
SINO
mostrar "Entrada normal: 20 euros"
FIN SI
Los paréntesis son importantes. Igual que en matemáticas, los paréntesis indican qué se evalúa primero. Aquí, primero comprobamos si la persona es menor de 12 O mayor de 65, y luego comprobamos si además es día laborable.
Ejemplo: precio de entrada al cine
Vamos con un caso más completo. Un cine tiene estas reglas de precios:
- Niños (menores de 12): 5 euros.
- Jubilados (65 o más): 6 euros.
- Estudiantes (con carnet): 7 euros.
- Adultos: 10 euros.
- Los miércoles, todo el mundo tiene un 50% de descuento.
INICIO
LEER edad
LEER tiene_carnet_estudiante
LEER dia_semana
SI edad < 12 ENTONCES
precio = 5
SINO SI edad >= 65 ENTONCES
precio = 6
SINO SI tiene_carnet_estudiante = verdadero ENTONCES
precio = 7
SINO
precio = 10
FIN SI
SI dia_semana = "miércoles" ENTONCES
precio = precio / 2
FIN SI
mostrar "El precio de tu entrada es: " + precio + " euros"
FIN
Fíjate en dos cosas importantes:
- Los SINO SI se evalúan en orden. Si alguien tiene 10 años y carnet de estudiante, paga 5 euros (precio de niño), porque esa condición se cumple primero.
- El descuento de los miércoles se aplica después, independientemente de la categoría. Esto es un segundo bloque condicional separado, no anidado dentro del primero.
Ejemplo: ¿qué me pongo hoy?
Un ejemplo más divertido. Imagina que estás creando un "asistente de armario" que te dice qué ponerte según el tiempo y la ocasión:
INICIO
LEER temperatura
LEER esta_lloviendo
LEER ocasión // "trabajo", "cita", "deporte", "casa"
// Primero decidimos la capa base según temperatura
SI temperatura < 10 ENTONCES
capa_base = "jersey de lana"
SINO SI temperatura < 20 ENTONCES
capa_base = "camisa manga larga"
SINO
capa_base = "camiseta"
FIN SI
// Luego ajustamos según la ocasión
SI ocasión = "trabajo" ENTONCES
SI temperatura < 15 ENTONCES
atuendo = capa_base + " con blazer y pantalón formal"
SINO
atuendo = "camisa + pantalón formal"
FIN SI
SINO SI ocasión = "cita" ENTONCES
atuendo = capa_base + " con tu mejor pantalón y zapatos buenos"
SINO SI ocasión = "deporte" ENTONCES
atuendo = "ropa deportiva (da igual la temperatura, vas a sudar)"
SINO
atuendo = capa_base + " con pantalón cómodo"
FIN SI
// Complementos según el clima
SI esta_lloviendo ENTONCES
atuendo = atuendo + " + paraguas"
SI temperatura < 15 ENTONCES
atuendo = atuendo + " + botas de agua"
FIN SI
FIN SI
mostrar "Hoy ponte: " + atuendo
FIN
Este ejemplo muestra cómo los condicionales se pueden organizar en bloques independientes que se complementan: primero la ropa base, luego el ajuste por ocasión, y finalmente los complementos por clima. Cada bloque toma su propia decisión, y el resultado final es la suma de todas.
Errores comunes con condicionales
- Olvidar el SINO final: si no cubres todos los casos posibles, tu programa puede no hacer nada. Siempre pregúntate: "¿qué pasa si ninguna condición se cumple?"
- Orden incorrecto de las condiciones: si pones
SI edad >= 12antes deSI edad >= 65, un jubilado de 70 entraría por la primera condición y pagaría precio de adulto. - Confundir Y con O: "llueve Y hace sol" es muy raro. "llueve O hace sol" cubre casi todas las situaciones. Piensa bien cuál necesitas.
Resumen
- SI / ENTONCES / SINO: la estructura básica para tomar decisiones.
- SINO SI: para encadenar múltiples condiciones excluyentes.
- Condicionales anidados: decisiones dentro de decisiones (árboles de decisión).
- Y: ambas condiciones deben ser verdaderas.
- O: al menos una condición debe ser verdadera.
- El orden de las condiciones importa: la primera que se cumpla es la que se ejecuta.
En la siguiente lección aprenderemos a repetir acciones con bucles: cómo hacer que tu programa haga algo una y otra vez sin tener que escribirlo cada vez.
Árbol de decisión: recomendador de restaurantes
Con papel y bolígrafo, diseña un árbol de decisiones para recomendar un restaurante. Usa pseudocódigo con SI / SINO SI / SINO. Tu programa debe preguntar estas tres cosas:
- Presupuesto: "bajo" (menos de 15 euros), "medio" (15-30 euros) o "alto" (más de 30 euros).
- Tipo de cocina: "italiana", "japonesa", "mexicana" o "española".
- Tamaño del grupo: 1-2 personas, 3-5 personas, o más de 5 personas.
Para cada combinación, recomienda un tipo de restaurante concreto. Por ejemplo:
- Presupuesto bajo + italiana + grupo pequeño = "Pizzería del barrio"
- Presupuesto alto + japonesa + grupo grande = "Restaurante omakase con reserva privada"
No necesitas cubrir TODAS las combinaciones (serían 36). Elige al menos 8 combinaciones interesantes y usa un SINO final como recomendación genérica para los casos no cubiertos.
lightbulb Pistas
Organiza tu pseudocódigo en niveles: primero decide por presupuesto (3 ramas principales), dentro de cada presupuesto decide por tipo de cocina, y dentro de cada cocina ajusta por tamaño del grupo si es necesario. Recuerda usar condiciones compuestas con Y cuando quieras simplificar: SI presupuesto = "bajo" Y tipo = "italiana". Termina siempre con un SINO que diga algo como "Te recomendamos buscar en Google Maps cerca de ti".