Skip to content

Especificación de diagramas de flujo

Propósito: establecer las convenciones para representar gráficamente los algoritmos desarrollados durante la unidad.

El diagrama de flujo constituye una representación gráfica del algoritmo. Durante la Unidad III se utilizará para visualizar:

  • la secuencia de operaciones
  • la entrada y salida de información
  • el procesamiento de datos
  • las decisiones
  • el flujo de ejecución del algoritmo.

El diagrama de flujo no sustituye al análisis ni al pseudocódigo. La relación entre las representaciones es:

Problema
↓
Análisis
↓
Pseudocódigo
↓
Diagrama de flujo
↓
PSeInt
↓
Verificación

Las tres representaciones del algoritmo (pseudocódigo, diagrama de flujo y PSeInt) deben conservar la misma lógica.

La simbología utilizada toma como referencia:

ISO 5807:1985 — Information processing — Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts.

La norma establece símbolos y convenciones para representar gráficamente procedimientos y procesos relacionados con sistemas de información.

Para efectos didácticos de esta materia se utilizará únicamente el subconjunto de símbolos necesario para representar los algoritmos correspondientes al nivel introductorio. La selección de símbolos no pretende reproducir la totalidad de la norma ISO 5807: es una adaptación didáctica, y los nombres en inglés que aparecen en esta página son solo una referencia orientativa.

Todo diagrama debe:

  • representar un algoritmo definido previamente
  • tener un inicio claramente identificado
  • mantener una dirección de flujo comprensible
  • utilizar símbolos de manera consistente
  • evitar cruces innecesarios de líneas
  • utilizar flechas para indicar el sentido del flujo cuando sea necesario
  • mantener correspondencia con el pseudocódigo
  • utilizar textos breves dentro de los símbolos
  • evitar ambigüedades
  • permitir que otra persona pueda seguir el algoritmo sin explicaciones adicionales.
Símbolos de diagrama de flujo: terminal para Inicio y Fin, proceso para asignaciones y constantes, paralelogramo de entrada para Entrada, pantalla de salida para Mostrar, decisión para condiciones, línea de flujo para el orden y conector para continuar el diagrama
SímboloFormaSignificadoCuándo utilizarloInstrucción de pseudocódigoEjemplo
TerminalRectángulo con extremos redondeadosInicio o final del algoritmoUna vez al inicio y una vez al finalInicio, FinInicio
ProcesoRectánguloOperación que modifica un valorAsignaciones, cálculos y constantes con valoridentificador = expresión, constante con valorarea = base * altura
EntradaParalelogramoInformación que se recibeCada instrucción de entradaEntrada:Entrada: base
Salida (pantalla)Pantalla: lado izquierdo en punta y lado derecho curvoInformación que se muestra en pantallaCada instrucción de salida, incluidos los mensajes previos a una entradaMostrarMostrar area
DecisiónRomboCondición con dos caminosCondicionales y repeticiones (tratamiento formal en la Unidad IV)Si … Entonces, Mientras … Haceredad >= 18
Línea de flujoLínea con punta de flechaOrden de ejecuciónEntre cada par de símbolos consecutivosOrden de las instruccionesInicio → Entrada: base
ConectorCírculo con una letraContinuación del flujo en otra parte del diagramaSolo cuando una línea directa dificulta la lectura (por ejemplo, al dividir el diagrama en dos columnas)Ninguna: no representa una instrucciónA

Nombre: en esta materia el símbolo se denomina terminal, nombre habitual en los textos en español (en inglés, terminator).

Función: representa el inicio o final del algoritmo.

Representación conceptual:

┌─────────────────┐
│ INICIO │
└─────────────────┘

También se utiliza para FIN.

Correspondencia con el pseudocódigo:

Inicio
...
Fin

Debe existir al menos un inicio y un final claramente identificados.

Función: representa una operación o procesamiento.

Representación conceptual:

┌─────────────────────────┐
│ area = base * altura │
│ * MITAD │
└─────────────────────────┘

Se utiliza para asignaciones, cálculos y operaciones de procesamiento.

Correspondencia con el pseudocódigo:

area = base * altura * MITAD

No debe utilizarse para representar una entrada o una salida.

La entrada y la salida se representan con símbolos distintos.

Función: representa los datos proporcionados por el usuario.

Símbolo: paralelogramo.

Representación conceptual:

╱────────────────────╲
╱ Entrada: base ╲
╲──────────────────────╱

Correspondencia con el pseudocódigo:

Entrada: base
Entrada: altura

Función: representa la información que se muestra al usuario en pantalla.

Símbolo: pantalla (en inglés, display). El lado izquierdo termina en punta y el lado derecho es curvo, como el contorno de un monitor.

Representación conceptual:

┌──────────────────╮
< Mostrar area )
└──────────────────╯

Correspondencia con el pseudocódigo:

Mostrar area
Mostrar "Ingrese la base:"

Los mensajes que se muestran antes de una entrada también son salidas y se representan con el símbolo de pantalla.

El paralelogramo no debe utilizarse para una instrucción Mostrar, ni el símbolo de pantalla para una instrucción Entrada:.

Función: representa una condición que determina diferentes caminos de ejecución.

Representación conceptual:

/\
/ \
/ ¿? \
\ /
\ /
\/

Una decisión debe tener una condición claramente expresada, por ejemplo edad >= 18. Los caminos deben identificarse mediante etiquetas como Sí y No, o mediante las condiciones correspondientes.

Correspondencia con el pseudocódigo:

Si edad >= 18 Entonces
...
Sino
...
FinSi

Las decisiones se estudian formalmente en la Unidad IV.

Función: indica la dirección en la que debe interpretarse el algoritmo.

Representación conceptual:

┌───────────┐
│ INICIO │
└─────┬─────┘
↓
┌───────────┐
│ PROCESO │
└─────┬─────┘
↓
┌───────────┐
│ FIN │
└───────────┘

Las líneas deben mantener una dirección clara.

El conector permite enlazar partes del diagrama cuando una línea directa dificulta la lectura. Se recomienda utilizarlo únicamente cuando sea necesario. No debe utilizarse para ocultar un diseño confuso.

Representación: círculo pequeño con una letra mayúscula. El flujo sale de un conector y continúa en otro conector con la misma letra.

Correspondencia: no representa ninguna instrucción del pseudocódigo, solo organiza el dibujo.

Ejemplo: en el siguiente diagrama del área de un triángulo, el dibujo se divide en dos columnas. La primera termina en el conector A y la segunda comienza en el conector A.

Diagrama de flujo del área de un triángulo en dos columnas. Primera columna: Inicio, proceso DIVISOR_AREA_TRIANGULO = 2, Mostrar Ingrese la base, Entrada base, Mostrar Ingrese la altura, conector A. Segunda columna: conector A, Entrada altura, proceso area = (base * altura) / DIVISOR_AREA_TRIANGULO, Mostrar el área, Fin

La siguiente tabla establece la relación conceptual:

PseudocódigoDiagrama
InicioTerminal
Declaración de variable sin valor (REAL base)No se representa
Declaración de variable o constante con valor (REAL MITAD = 0.5)Proceso, con la asignación del valor (MITAD = 0.5)
Mostrar "mensaje" antes de una entradaSalida en pantalla (un símbolo por instrucción)
Entrada:Entrada (paralelogramo)
AsignaciónProceso
CálculoProceso
MostrarSalida en pantalla
Si ... EntoncesDecisión
SinoRama alternativa de decisión
MientrasDecisión y flujo de retorno
FinTerminal

Problema: calcular el área de un triángulo utilizando su base y altura.

Pseudocódigo

Inicio
REAL base
REAL altura
REAL area
REAL MITAD = 0.5
Entrada: base
Entrada: altura
area = base * altura * MITAD
Mostrar area
Fin

Diagrama de flujo conceptual

┌───────────┐
│ INICIO │
└─────┬─────┘
↓
┌──────────────────────┐
│ MITAD = 0.5 │
└──────────┬───────────┘
↓
╱────────────────╲
╱ Entrada: base ╲
╲──────────────────╱
↓
╱────────────────╲
╱ Entrada: altura ╲
╲──────────────────╱
↓
┌──────────────────────┐
│ area = base * altura │
│ * MITAD │
└──────────┬───────────┘
↓
┌────────────────╮
< Mostrar area )
└────────────────╯
↓
┌───────────┐
│ FIN │
└───────────┘

La representación gráfica final deberá utilizar los símbolos gráficos correspondientes y no los caracteres anteriores:

Diagrama de flujo del área de un triángulo con la constante MITAD: Inicio, proceso MITAD = 0.5, entrada base, entrada altura, proceso area = base * altura * MITAD, salida Mostrar area, Fin

La constante MITAD se representa con un proceso porque su valor se asigna durante el algoritmo. En la traducción a PSeInt corresponde a la instrucción MITAD = 0.5. Así, las tres representaciones contienen las mismas instrucciones.

Siempre que sea posible, el flujo principal debe avanzar de arriba hacia abajo.

El lector debe poder determinar fácilmente qué operación ocurre primero, cuál después y cuándo termina el algoritmo.

Utiliza frases cortas y claras. Evita colocar explicaciones extensas dentro de los símbolos.

Cada proceso debe representar una operación o conjunto coherente de operaciones. No coloques un algoritmo completo dentro de un solo símbolo de proceso.

Toda decisión debe mostrar claramente sus posibles caminos. Por ejemplo:

¿edad >= 18?
/ \
Sí No
↓ ↓

Evita cruces de líneas cuando exista una alternativa de diseño.

Utiliza conectores únicamente cuando contribuyan a mantener la legibilidad.

El nivel de detalle debe corresponder al propósito del diagrama.

Para ejercicios introductorios se recomienda representar:

Inicio
↓
Entrada
↓
Proceso
↓
Salida
↓
Fin

Para algoritmos con decisiones:

Inicio
↓
Entrada
↓
Decisión
↙ ↘
Proceso Proceso
↘ ↙
Salida
↓
Fin

En estructuras repetitivas se deberá mostrar claramente el retorno del flujo hacia la condición o punto de repetición.

El diagrama de flujo, el pseudocódigo y el algoritmo ejecutado en PSeInt deben representar la misma solución:

Pseudocódigo
↕
Diagrama de flujo
↕
PSeInt

Si las tres representaciones producen resultados diferentes, se debe revisar el algoritmo.

PSeInt no determina cómo debe construirse el diagrama de flujo. El diagrama tampoco determina automáticamente la solución. Las tres representaciones son formas diferentes de expresar una misma solución algorítmica.

ErrorCorrección
Utilizar un rectángulo para representar una entrada.Utilizar el paralelogramo de entrada.
Utilizar el paralelogramo para una instrucción Mostrar.Utilizar el símbolo de pantalla.
Representar una decisión como un proceso.Utilizar el símbolo de decisión.
Crear decisiones sin indicar sus caminos.Identificar claramente las ramas.
Crear diagramas sin inicio o final.Utilizar el símbolo terminal para Inicio y Fin.
Cruzar líneas constantemente.Reorganizar el diagrama o utilizar conectores cuando sean necesarios.
Colocar demasiado texto dentro de los símbolos.Utilizar expresiones breves que representen la operación.
Crear un diagrama diferente al pseudocódigo.Comprobar correspondencia instrucción por instrucción.

Un diagrama podrá considerarse correctamente elaborado cuando:

  • Representa el problema planteado.
  • Tiene inicio y final.
  • Utiliza símbolos apropiados.
  • Mantiene un flujo comprensible.
  • Las entradas corresponden a los datos identificados.
  • Los procesos corresponden a las operaciones del algoritmo.
  • Las salidas corresponden a los resultados esperados.
  • Las decisiones representan correctamente las condiciones.
  • Existe correspondencia con el pseudocódigo.
  • Puede utilizarse para verificar la lógica del algoritmo.

El diagrama de flujo debe representar gráficamente el mismo algoritmo que se expresa mediante pseudocódigo. No debe utilizarse para decorar la solución ni para sustituir el análisis del problema.

La calidad del diagrama depende de la claridad de la solución algorítmica que representa.