Condicionales

Clase 13 de 19Curso de Pensamiento Lógico

Resumen

Interactuar con cajeros automáticos es una tarea cotidiana, pero ¿alguna vez te has preguntado cómo funcionan por dentro? Programar un cajero automático o ATM básico es una excelente manera de comprender estructuras fundamentales en programación como validaciones simples, estructuras condicionales anidadas y condicionales múltiples.

¿Cómo funcionan las estructuras condicionales simples?

Cada vez que utilizas un cajero automático, el primer paso es autenticarse ingresando una clave. Esta acción desencadena una estructura condicional simple en el sistema:

  • Si ingresas correctamente tu clave, el cajero te reconoce y continúa con la operación.
  • Si la clave es incorrecta, el sistema te avisa y debes intentarlo nuevamente.

Por ejemplo, en programación sería de esta forma:

clave_correcta = "1234"
clave_usuario = input("Ingrese su clave: ")

if clave_usuario == clave_correcta:
    print("Bienvenido, ¿qué operación desea realizar?")
else:
    print("Clave incorrecta.")

Esto permite controlar accesos de forma básica y efectiva.

¿Qué son las estructuras condicionales anidadas y por qué usarlas?

Las estructuras condicionales anidadas ocurren cuando una condición depende de otra previa para activarse. Imagina que el usuario puede elegir cambiar su clave, pero solo después de haber ingresado su clave actual de manera correcta. En este contexto, una condición está "dentro" de otra:

  • Primer condición: validar clave.
  • Segunda condición (anidada): preguntar si el usuario desea modificar su clave actual.

Este sería el esquema en código:

if clave_usuario == clave_correcta:
    cambiar_clave = input("¿Desea cambiar su clave? 1 para sí, 2 para no: ")
    if cambiar_clave == "1":
        clave_correcta = input("Ingrese nueva clave: ")

Las condiciones anidadas permiten gestionar escenarios más complejos de manera ordenada, aunque no son ideales para gran cantidad de opciones.

¿En qué situaciones aplican las estructuras condicionales múltiples?

Cuando existen varias opciones o caminos posibles para elegir, como sucede en el menú principal de un cajero, resulta práctico usar condicionales múltiples. Considera que un usuario puede:

  1. Consultar saldo.
  2. Depositar dinero.
  3. Retirar dinero.
  4. Salir.

Implementar esto con "según" convierte tu código en algo limpio y legible:

menu = input("Seleccione una opción (1- Consultar, 2- Depositar, 3- Retirar, 4- Salir): ")

if menu == "1":
    print("Su saldo actual es veinte mil pesos.")
elif menu == "2":
    cantidad = input("¿Cuánto quiere depositar?")
    # proceso depósito
elif menu == "3":
    retiro = input("¿Cuánto quiere retirar?")
    # proceso retiro
else:
    print("Hasta la próxima.")

Esta estructura ayuda a gestionar claramente múltiples opciones de interacción con los usuarios, y facilita la expansión del sistema si añades nuevas funcionalidades más adelante.

¿Cómo mejorar nuestro algoritmo hacia condiciones iterativas?

Notarás que tras realizar cualquier operación, el algoritmo actual termina, obligando al usuario a empezar desde cero nuevamente. Un cajero real nunca se comporta así: la solución es implementar una estructura iterativa, o loop, para mantener al usuario "dentro" del sistema hasta que voluntariamente decida salir. Este será nuestro siguiente paso para contar con un cajero aún más realista.