:Date: 10/12/2018 :Author: Carlos Félix Pardo Martín :License: Creative Commons Attribution-ShareAlike 4.0 International :tocdepth: 1 .. _chart-flowchart: Diagramas de flujo ================== Un diagrama de flujo es un dibujo que representa un proceso detallando sus tareas y decisiones. Su finalidad es expresar de manera simple y visual lo que ocurre en un proceso o en un programa, de manera que sea fácil de comprender. Los diagramas de flujo se pueden presentar al programador para que éste comprenda mejor lo que el cliente quiere realizar. Posteriormente el programador desarrolla el programa basándose en los diagramas de flujo. También se dibujan diagramas de flujo para documentar un programa de ordenador una vez terminado, para comunicar lo que hace el programa de una manera visual y comprensible. Los diagramas de flujo no se limitan a representar el funcionamiento de los programas, también pueden informarnos de las tareas que debemos realizar en una situación determinada. Este es el aspecto que tiene un diagrama de flujo: .. image:: prog/_images/flowchart-estudiar.png :align: center :width: 240px Símbolos -------- A continuación se presentan los principales símbolos utilizados para dibujar diagramas de flujo. **Comienzo y final** Todos los diagramas de flujo deben tener un símbolo de comienzo y un símbolo de finalización, que se representan con rectángulos redondeados en los extremos. .. figure:: prog/_images/flowchart-inicio.png :align: center :width: 240px Símbolos de comienzo y finalización del programa. **Tareas** Las tareas que realiza el programa se representan con rectángulos. Dentro del rectángulo se debe escribir en qué consiste la tarea. Por ejemplo, sumar dos números o enviar un mensaje. .. figure:: prog/_images/flowchart-tarea.png :align: center :width: 240px Símbolo de tarea. **Entrada y salida de datos** Cuando la tarea consiste en una entrada o salida de datos tal como escribir en la pantalla, pedir que el usuario escriba un texto, imprimir una hoja de papel, etc. En ese caso la tarea tendrá una forma de rectángulo inclinado. .. figure:: prog/_images/flowchart-entrada.png :align: center :width: 240px Símbolo de entrada y de salida. **Decisiones** Un símbolo muy especial es el símbolo de decisión. Con este símbolo el programa puede seguir dos caminos distintos, dependiendo de que la condición se cumpla o que no se cumpla. .. figure:: prog/_images/flowchart-decision.png :align: center :width: 240px Símbolo de decisión. El camino a seguir depende de la condición. **Flechas de flujo** Todos los símbolos deben ir enlazados entre sí por flechas que indican cómo se realiza la secuencia. Las flechas indican el camino o flujo que sigue el ordenador desde el comienzo hasta la finalización del programa, a través de todas las tareas. .. figure:: prog/_images/flowchart-flecha.png :align: center :width: 240px Flecha de unión de las tareas. **Conectores de flechas** Cuando las dos tareas a unir están demasiado lejos o cuando resulta confuso cruzar muchas flechas, entonces se utilizan dos círculos con un mismo número, para indicar el comienzo y el final de la flecha: Cada flecha debe tener un número diferente, de forma que debe haber solo 2 círculos con un mismo número: un círculo de comienzo y otro de finalización. .. figure:: prog/_images/flowchart-conector.png :align: center :width: 240px Flecha larga, separada por conectores circulares. **Otros símbolos** Hasta ahora hemos visto los símbolos más importantes. Con ellos se pueden representar todos los diagramas con los que vamos a trabajar. También existen otros símbolos especializados que permiten representar tareas con más detalle, pero utilizarlos solo complicaría más los diagramas, de manera que no los usaremos. Diagramas de ejemplo -------------------- **Diagrama secuencial** En este diagrama las tareas se suceden una a otra, sin ninguna decisión. Este tipo de diagrama es útil para conocer el orden en el que hay que realizar una tarea. .. figure:: prog/_images/flowchart-huevo.png :align: center :width: 240px Diagrama de flujo que describe cómo hacer un huevo frito. **Diagrama con condiciones** En este tipo de diagrama, el flujo de la tarea no es secuencial y se desvía dependiendo de las condiciones que se cumplan. .. figure:: prog/_images/flowchart-mueve.png :align: center :width: 320px Cómo mover un personaje con el teclado. Recursos -------- Web para dibujar diagramas de flujo online: `app.diagrams.net `__ ----- Ejercicios ---------- 1. Dibuja un diagrama de flujo que describa las tareas más importantes que tienes que realizar por las mañanas desde que te despiertas hasta que llegas al instituto. Debe haber entre 5 y 8 tareas. #. Dibuja el diagrama de flujo de un semáforo que enciende una luz verde 10 segundos, luego apaga la luz verde y enciende una luz ámbar dos segundos, luego apaga la luz ámbar y enciende una luz roja 10 segundos. Por último apaga la luz roja y vuelve a comenzar el ciclo. #. Dibuja un diagrama de flujo que explique cómo arreglar una lámpara. Primero debes comprobar si hay luz en la casa. Después comprobarás si la lámpara está conectada. Por último comprobarás que la bombilla no está fundida. Se debe dar solución a cada una de las situaciones anteriores. Si no se da ninguna de las situaciones anteriores, llamarás al servicio de reparación. #. Dibuja un diagrama de flujo que describa un método para ordenar cartas numeradas, de menor a mayor. Hay dos montones de cartas, uno desordenado y otro ordenado. Primero hay que tomar una carta del montón desordenado. A continuación, se compara con la primera carta del montón ordenado. Si la nueva carta es más pequeña, se coloca sobre el montón ordenado. Si la nueva carta es mayor que la primera carta ordenada, buscamos la siguiente carta del montón ordenado y volvemos a comparar qué carta es mayor. Repetimos esto hasta que la nueva carta esté colocada en su sitio. Una vez colocada la nueva carta, volvemos a tomar otra carta del montón desordenado. Cuando se termine el montón de cartas desordenadas, el programa termina. #. Dibuja un diagrama de flujo con ayuda del ordenador y con el programa Libre Office Draw. En la siguiente sección puedes descargar una plantilla de Libre Office Draw para dibujar diagramas de flujo. Descargas --------- :download:`Plantilla para realizar diagramas de flujo. Formato Libre Office Draw. ` :download:`Diagramas de flujo. Formato Libre Office Draw. ` :download:`Tema diagramas de flujo en formato Microsoft Word. ` :download:`Tema diagramas de flujo en formato PDF. `