Los diagramas de flujo permiten representar visualmente decisiones lógicas, mostrando qué camino sigue un algoritmo cuando una condición es verdadera o falsa.
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.
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.
| 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? |
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.
Una condición separa el flujo del algoritmo en ramas.
Estas ramas equivalen a los bloques de un if y un else en programación.
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.
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.
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
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.
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
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
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 |
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.
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.