Unidad 2: Diagramas de Flujo

Diagramas de Flujo

Definición

Un diagrama de flujo es una representación gráfica de un proceso o algoritmo, mostrando los pasos en secuencia mediante símbolos estandarizados. Es útil para describir procesos de forma visual y clara. Generalmente, se dibujan antes de comenzar a programar el código fuente.

A continuación se detallan los símbolos estandarizados:

flowchart TD
    T([Inicio / Fin])
    style T fill:#fff,stroke:#333,stroke-width:2px

Terminal / Inicio / Fin

  • Función: Delimitador.
  • Descripción: Indica el punto de inicio o la terminación del proceso. Todo diagrama debe tenerlos.

flowchart TD
    IO[/Datos/]
    style IO fill:#fff,stroke:#333,stroke-width:2px

Entrada / Salida (Paralelogramo)

  • Función: E/S de Datos.
  • Descripción: Representa la lectura de datos (recepción) o la salida de información (escritura).

flowchart TD
    P[Proceso]
    style P fill:#fff,stroke:#333,stroke-width:2px

Proceso (Rectángulo)

  • Función: Operación / Acción.
  • Descripción: Representa cualquier paso de procesamiento, cálculo matemático o asignación.

flowchart TD
    D{¿Condición?}
    style D fill:#fff,stroke:#333,stroke-width:2px

Decisión (Rombo)

  • Función: Bifurcación Lógica.
  • Descripción: Evalúa una condición y divide el flujo en dos caminos (Sí/No, Verdadero/Falso).

Documento / Imprimir

  • Función: Salida Impresa.
  • Descripción: Tradicionalmente representado como un rectángulo con la base ondulada. Indica la impresión de resultados o generación de documentos físicos.

flowchart TD
    A1((A))
    style A1 fill:#fff,stroke:#333,stroke-width:2px

Conector (Círculo)

  • Función: Enlace.
  • Descripción: Conecta partes del diagrama que están en la misma página para evitar cruces complejos.

flowchart TD
    A[ ] --> B[ ]
    style A fill:none,stroke:none
    style B fill:none,stroke:none

Línea de Flujo (Flecha)

  • Función: Dirección.
  • Descripción: Indica la secuencia lógica y el sentido en que se ejecutan los pasos.

Reglas de sintaxis y construcción

Para asegurar la claridad y validez del diagrama:

  • Dirección del Flujo: Debe ser claro y dirigido de arriba hacia abajo o de izquierda a derecha.
  • Inicio y Fin: Todo proceso debe empezar en un símbolo de inicio y terminar en un símbolo de fin para asegurar completitud.
  • Atomicidad: Evitar procesos demasiado complejos dentro de un solo rectángulo; se deben dividir en subprocesos.
  • Decisiones: Las salidas de un rombo suelen ser dos: una para “sí” y otra para “no”.
  • Sin Cruces: Las flechas nunca deben cruzarse; usar conectores si es necesario.
  • Claridad: Evitar sobrecargar el diagrama con demasiados detalles.

Tipologías de Diagramas

Secuencial

Las operaciones se ejecutan de manera lineal, una tras otra, sin ramificaciones ni repeticiones.

flowchart TD
    Inicio([Inicio]) --> Leer[/Leer A, B/]
    Leer --> Sumar[Sumar A + B]
    Sumar --> C@{ shape: doc, label: "Mostrar Suma"}

    C --> Fin([Fin])
    
    style Inicio fill:#fff,stroke:#333
    style Fin fill:#fff,stroke:#333
Figure 1: Ejemplo: Suma de dos números

Condicional

Incluye decisiones que bifurcan el flujo del proceso en dos o más caminos basados en una condición booleana (Verdadero/Falso).

flowchart TD
    Inicio([Inicio]) --> Leer[/Leer Edad/]
    Leer --> Decision{Si Edad > 18?}
    Decision -- Sí --> C@{ shape: doc, label: "Permitir acceso"}
    Decision -- No --> D@{ shape: doc, label: "Denegar acceso"}
    C --> Fin([Fin])
    D --> Fin

    style Decision fill:#fff,stroke:#333
Figure 2: Ejemplo: Verificación de edad

Repetitivo (Bucle)

Describe un proceso que se repite varias veces hasta que se cumple una condición específica de parada.

flowchart TD
    Inicio([Inicio]) --> Init[C = 1]
    Init --> Condicion{Mientras C < 6}
    
    Condicion -- Sí --> Print@{ shape: doc, label: "Imprimir C"}
    Print --> Inc[C = C + 1]
    Inc --> Condicion
    
    Condicion -- No --> FinalDoc@{ shape: doc, label: "Fin"}
    FinalDoc --> Fin([Fin])

    style Condicion fill:#fff,stroke:#333
Figure 3: Ejemplo: Contador hasta 5

Ejercicios de lógica algorítmica

Ejercicios de secuencia

  1. Promedio de calificaciones: Un estudiante realiza cuatro exámenes durante el semestre, los cuales tienen la misma ponderación. Realice el diagrama de flujo que representen el algoritmo correspondiente para obtener el promedio de las calificaciones obtenidas.

Ejercicios de decisión

  1. Mayor de dos números: Se desea implementar un algoritmo para determinar cuál de dos valores proporcionados es el mayor. Representarlo diagrama de flujo.

Ejercicios de repetición

  1. Suma con ciclo “mientras”: Se requiere un algoritmo para obtener la suma de diez números mediante la utilización de un ciclo “Mientras”. Realice el diagrama de flujo.