# Diagramas de flujo Un **algoritmo** es una sucesión de pasos que se deben realizar para resolver un problema. Un **diagrama de flujo** es una forma de representar un proceso o algoritmo de manera visual, estructurada y organizada. Es una herramienta muy útil para organizar y estructurar una tarea de programación antes de entrar directamente con el código. Ejemplo de diagrama de flujo: [![image-1654533440823.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654533440823.png)](https://www.epitech-it.es/wp-content/uploads/2021/05/diagrama-de-flujo-de-programacion.png) Aunque existen diversos programas informáticos para la realización de diagramas de flujo, en este curso utilizaremos una funcionalidad de PSeInt que lo permite. No obstante, y atendiendo a la cada vez más abundante [evidencia científica](https://www.youtube.com/watch?v=3raf9qVJrQw&t=11872s) al respecto, recomendamos que los diagramas de flujo se aborden con el alumnado en primer lugar **con papel y boli, y si es pertinente de forma colaborativa**, dejando para el software simplemente su edición final para incluir como documentación del programa. ### Elementos del diagrama de flujo Un diagrama de flujo está formado fundamentalmente por los siguientes elementos: - **Línea o flechas del flujo**: Indica la instrucción que se va a realizar, o la dirección del flujo del proceso. Muestra el carácter secuencial del programa. - **Terminal o inicio y final**: Es la forma en la cual se indica el “inicio del proceso” y “final del proceso”. Su icono suele ser un *rectángulo con las esquinas redondeadas.* [![image-1654535499072.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535499072.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535499072.png) - **Asignación/ definición**: Permite asignar un valor o definir una variable, donde se almacenan los datos que se necesitan para resolver el problema. Suele representarse con un rectángulo. [![image-1654535632765.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535632765.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535632765.png) - **Datos de entrada**: Indica la recepción de datos en la entrada. Se representa con un recuadro con las esquinas inclinadas y una flecha hacia dentro. [![image-1654535451517.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535451517.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535451517.png) - **Datos de salida**: Indica la impresión de datos en la salida. Se representa con un recuadro con las esquinas inclinadas y una flecha hacia fuera. [![image-1654535421186.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535421186.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535421186.png) - **Decisión**: Indica que desde el punto en que nos encontramos, puede haber más de un camino para seguir, según la condición dada. En este caso se usa un rombo. [![image-1654535543002.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535543002.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535543002.png) - **Otros**: Como algunos tipos de bucles, los iremos viendo más adelante. ### Ejemplos sencillos de diagramas de flujo ##### Ejemplo 1: Diagrama de flujo de un programa que a partir de dos números los suma y muestra el resultado en pantalla SOLUCIÓN: - **Salidas**: tiene que pedir los dos números a sumar, y luego tiene que mostrar el resultado. - **Entradas**: los dos números a sumar. - **Almacenamiento**: dos variables que almacenen los números a sumar (num1 y num2) , y una tercera que almacene el resultado (resultado) - **Operación**: suma. Diagrama de flujo: [![image-1654535965816.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654535965816.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654535965816.png) ##### Ejemplo 2: Diagrama de flujo de un programa que a partir de dos números compara cuál es mayor y lo muestra en pantalla. - **Salidas**: tiene que pedir los dos números a comparar, y luego tiene que mostrar el resultado de la comparación. - **Entradas**: los dos números a comparar. - **Almacenamiento**: dos variables que almacenen los números a comparar (num1 y num2) - **Operación**: comparación lógica. Diagrama de flujo: [![image-1654536227461.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654536227461.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654536227461.png) {{@5685}}