58. Diagramas de flujo y lógica condicional

Los diagramas de flujo permiten representar visualmente decisiones lógicas, mostrando qué camino sigue un algoritmo cuando una condición es verdadera o falsa.

58.1 Introducción

Un diagrama de flujo representa los pasos de un algoritmo mediante símbolos conectados por flechas.

Cuando el algoritmo debe decidir, el diagrama muestra una condición y las ramas posibles según su resultado lógico.

58.2 Para qué sirve un diagrama de flujo

Un diagrama de flujo ayuda a visualizar el orden de las acciones antes de escribir código.

También permite detectar decisiones incompletas, caminos repetidos, condiciones mal ubicadas o casos que no fueron contemplados.

58.3 Símbolos básicos

Símbolo Uso Ejemplo
Inicio / Fin Marca el comienzo o final del algoritmo. Inicio
Proceso Representa una acción o cálculo. calcular promedio
Entrada / Salida Representa lectura o muestra de datos. leer edad
Decisión Representa una condición con ramas. edad >= 18?

58.4 El símbolo de decisión

La decisión suele representarse con un rombo. Dentro del rombo se escribe una condición que puede evaluarse como verdadera o falsa.

edad >= 18?

Desde ese punto salen dos caminos: uno para el caso verdadero y otro para el caso falso.

58.5 Ramas verdadero y falso

Una condición separa el flujo del algoritmo en ramas.

  • Verdadero: camino que se sigue si la condición se cumple.
  • Falso: camino que se sigue si la condición no se cumple.

Estas ramas equivalen a los bloques de un if y un else en programación.

58.6 Ejemplo simple

Regla: si la edad es mayor o igual a 18, permitir ingreso; en caso contrario, rechazar ingreso.

Inicio
Leer edad
¿edad >= 18?
  Sí: permitir ingreso
  No: rechazar ingreso
Fin

La pregunta del diagrama es una proposición lógica.

58.7 Traducción a código

El diagrama anterior puede traducirse a una estructura condicional.

if (edad >= 18) {
  permitirIngreso();
} else {
  rechazarIngreso();
}

La rama "Sí" corresponde al bloque if; la rama "No" corresponde al bloque else.

58.8 Condiciones compuestas en diagramas

Una decisión también puede contener una condición compuesta.

¿edad >= 18 y tieneDocumento?

En lógica formal:

edad >= 18 ∧ tieneDocumento

En código:

edad >= 18 && tieneDocumento

58.9 Decisiones encadenadas

Cuando hay más de dos resultados posibles, se pueden encadenar decisiones.

¿nota >= 90?
  Sí: excelente
  No: ¿nota >= 70?
      Sí: aprobado
      No: desaprobado

Este esquema equivale a una cadena de if, else if y else.

58.10 Decisiones anidadas

Una decisión anidada aparece cuando dentro de una rama se evalúa otra condición.

Esto permite representar reglas dependientes, por ejemplo: primero verificar si el usuario existe, y solo después revisar si está activo.

¿usuario existe?
  Sí: ¿usuario activo?
      Sí: permitir acceso
      No: mostrar bloqueo
  No: mostrar error

58.11 Simplificar diagramas

Si un diagrama tiene muchas decisiones anidadas, puede ser señal de que la lógica debe reorganizarse.

Una condición compuesta bien nombrada puede reemplazar varias decisiones pequeñas cuando todas conducen a la misma acción.

puedeAcceder = usuarioExiste ∧ usuarioActivo ∧ tienePermiso

58.12 Tablas de decisión y diagramas

Antes de dibujar un diagrama complejo, una tabla de decisión puede ayudar a definir los casos.

Usuario activo Tiene permiso Acción
false false Rechazar acceso
false true Rechazar acceso
true false Solicitar permiso
true true Permitir acceso

58.13 Diagramas y validaciones

Los diagramas de flujo son útiles para revisar validaciones de formularios.

Inicio
Leer email y contraseña
¿email está vacío?
  Sí: mostrar error
  No: ¿contraseña tiene al menos 8 caracteres?
      Sí: registrar usuario
      No: mostrar error
Fin

El diagrama muestra claramente qué validación se revisa primero y qué ocurre si falla.

58.14 Errores comunes

  • Escribir acciones dentro de una decisión en lugar de una condición.
  • Olvidar una rama para el caso falso.
  • Usar una condición ambigua que no se evalúa claramente como verdadera o falsa.
  • Crear diagramas demasiado anidados sin revisar si pueden simplificarse.
  • No verificar que todas las ramas terminen en un resultado coherente.

58.15 Qué debes recordar de este tema

  • Un diagrama de flujo representa visualmente los pasos de un algoritmo.
  • Las decisiones se basan en condiciones lógicas.
  • Una condición produce ramas para verdadero y falso.
  • Los diagramas pueden traducirse a estructuras if, else if y else.
  • Las tablas de decisión ayudan a diseñar diagramas más completos.

58.16 Conclusión

Los diagramas de flujo hacen visible la lógica condicional de un algoritmo. Al representar decisiones, ramas y acciones, ayudan a razonar antes de programar y a detectar errores en el flujo.

En el próximo tema estudiaremos la validación de algoritmos mediante razonamiento lógico.