Antes de escribir un programa hay que decidir qué debe hacer, en qué orden y cómo reaccionará ante distintas situaciones. El diagrama de flujo representa ese plan gráficamente mediante símbolos convencionales y flechas que muestran el recorrido de la ejecución.

El NIST define un algoritmo como un proceso matemático claramente especificado o un conjunto de reglas que produce un resultado previsto. El diagrama no es el algoritmo en sí, sino una forma de describirlo, comprobarlo y comunicarlo antes de traducirlo a un lenguaje.

¿Qué es un diagrama de flujo?

La definición asociada a ISO 5807 describe el flowchart como una representación gráfica de la definición, análisis o método de solución de un problema, en la que los símbolos representan operaciones, datos y flujos. ISO 5807 establece símbolos y convenciones para diagramas de programas, datos y sistemas.

  • dónde empieza y termina el procedimiento;
  • qué datos entran y qué resultados salen;
  • qué procesos se ejecutan;
  • qué camino se elige cuando una condición es verdadera o falsa.
Infografía de los símbolos básicos de un diagrama de flujo con un ejemplo de decisión entre mar y montaña Terminal, proceso, entrada-salida, decisión, flechas y conectores forman el vocabulario visual básico.

Los símbolos fundamentales

Óvalo o terminal: inicio y fin

El terminal marca el comienzo o el final. En Flowgorithm, el terminal inicial de la función principal suele llamarse Main.

Rectángulo: proceso

suma = numero1 + numero2 contador = contador + 1 precio_final = precio * 1.22

Contiene un cálculo, una asignación o una transformación.

Paralelogramo: entrada y salida

Leer edad Escribir "Eres mayor de edad"

El verbo debe aclarar si el dato entra o sale.

Rombo: decisión

edad >= 18? respuesta == "S"? numero % 2 == 0?

Solo se recorre una rama según el resultado lógico.

Flechas y conectores

Las flechas indican el orden de ejecución. Los conectores permiten continuar el flujo en otra zona y evitar cruces, aunque demasiados conectores pueden complicar la lectura.

Leer el ejemplo «mar o montaña»

  1. el proceso empieza;
  2. se muestra una pregunta;
  3. se lee la respuesta;
  4. el rombo comprueba si es igual a «S»;
  5. la rama verdadera aconseja el mar;
  6. la rama falsa aconseja la montaña;
  7. las ramas se unen y el proceso termina.

Del diagrama al pseudocódigo

INICIO ESCRIBIR "¿El mar está tranquilo? S/N" LEER respuesta SI respuesta = "S" ENTONCES ESCRIBIR "¡Ve al mar!" SI NO ESCRIBIR "¡Mejor la montaña!" FIN SI FIN

Del diagrama a Python

La documentación oficial de Python considera if, while y for construcciones tradicionales de control:

respuesta = input("¿El mar está tranquilo? S/N: ").strip().upper() if respuesta == "S": print("¡Ve al mar!") else: print("¡Mejor la montaña!")

La entrada se convierte en input(), la salida en print() y el rombo en if ... else. La sangría delimita cada rama.

Las tres estructuras fundamentales

Secuencia

Las instrucciones se ejecutan una después de otra.

Selección

Una condición elige una alternativa.

Iteración

Una flecha de retorno repite una parte del flujo.

contador = 1 MIENTRAS contador <= 5 ESCRIBIR contador contador = contador + 1 FIN MIENTRAS

Diseñar correctamente un ciclo

Debe incluir inicialización, condición, cuerpo y actualización. Sin actualización puede ser infinito; una condición incorrecta puede impedir la ejecución o provocar una repetición extra.

Flowgorithm: diagramas ejecutables

Flowgorithm es un lenguaje gráfico gratuito para principiantes. Permite declarar variables, asignar, leer, escribir, decidir, repetir y utilizar funciones, y después ejecutar el diagrama.

El tutorial oficial presenta los terminales de la función principal. La documentación de plantillas enumera If, While, For, entrada y salida. El Source Code Viewer traduce el diagrama a distintos lenguajes y relaciona visualmente las formas con el código.

¿Los diagramas de flujo son «de la vieja escuela»?

Son anteriores a los entornos modernos, pero siguen siendo útiles. ISO 5807 continúa publicado y confirmado, y las directivas ISO actuales lo siguen citando para la preparación de flowcharts técnicos.

Sirven para enseñar, explicar procedimientos, analizar problemas, documentar procesos cortos o críticos y detectar ramas ausentes. Para programas enormes, concurrencia compleja o centenares de excepciones, pueden ser mejores el pseudocódigo, UML, las tablas de decisión o las máquinas de estados.

Buenas prácticas

  • usar un título claro;
  • mantener el flujo principal de arriba abajo;
  • escribir una acción por bloque;
  • formular decisiones como preguntas comprobables;
  • etiquetar Verdadero/Falso o Sí/No;
  • evitar cruces innecesarios;
  • probar todos los caminos;
  • mantener nombres coherentes;
  • actualizar el diagrama cuando cambia el programa.

Del problema al algoritmo

  1. definir el objetivo;
  2. enumerar las entradas;
  3. establecer las salidas;
  4. identificar las decisiones;
  5. identificar las repeticiones;
  6. dibujar el flujo;
  7. simularlo manualmente;
  8. traducirlo a código;
  9. comprobar los resultados.

Errores frecuentes

  • Poner una pregunta en un rectángulo: las condiciones pertenecen al rombo.
  • No etiquetar las ramas: verdadero y falso quedan ambiguos.
  • Dibujar líneas sin dirección: no se conoce el orden.
  • Crear un ciclo sin actualización: puede no terminar.
  • Confundir entrada y proceso: leer no es calcular.
  • Incluir demasiadas acciones en un bloque: se pierde precisión.
  • No actualizar la documentación: deja de representar el código.

Preguntas frecuentes

¿Un diagrama de flujo es un programa?

Normalmente representa un algoritmo. En Flowgorithm, las formas contienen instrucciones ejecutables y forman un programa visual.

¿Cada decisión debe tener dos salidas?

Una decisión booleana suele tener dos resultados, y ambos deben aparecer.

¿El paralelogramo sirve para entrada y salida?

Sí. El texto del símbolo aclara la dirección del dato.

¿Se puede traducir automáticamente a Python?

Flowgorithm posee un visualizador de código para varios lenguajes. El resultado debe comprenderse y probarse.

¿Cuándo conviene usar pseudocódigo?

Cuando el algoritmo es largo, muy anidado o cambia con frecuencia.

Fuentes oficiales y lecturas recomendadas