Un diagrama de flujo es un tipo común de diagramas ( modelos gráficos ) que describen algoritmos o procesos en los que los pasos individuales se representan como bloques de varias formas, conectados por líneas que indican la dirección de la secuencia.
Al dibujar elementos, se recomienda adherirse a tamaños estrictos, definidos por dos valores a y b . El valor a se selecciona del rango 15, 20, 25 .. mm, b se calcula a partir de la relación 2⋅ a = 3⋅ b . El dimensionamiento es un consejo, sin embargo, si se observan las dimensiones, los diagramas de bloques tienen una apariencia más precisa.
El símbolo muestra una función de procesamiento de datos de cualquier tipo (realizar una determinada operación o grupo de operaciones, lo que conduce a un cambio en el significado, la forma o la ubicación de la información, o para determinar cuál de varias direcciones de flujo debe moverse).
El símbolo representa datos, el soporte de datos no está definido.
Convertir datos en una forma adecuada para el procesamiento (entrada) o mostrar los resultados del procesamiento (salida). Este símbolo no define el soporte de datos (se utilizan símbolos especiales para indicar el tipo de soporte de datos).
El símbolo muestra un proceso predefinido que consta de una o más operaciones o pasos de programa que se definen en otro lugar (en una subrutina, módulo). Por ejemplo, en programación, una llamada a un procedimiento o función.
Un símbolo representa una función de tipo decisión o interruptor que tiene una entrada y varias salidas alternativas, una y solo una de las cuales puede activarse después de evaluar las condiciones definidas dentro de este símbolo. Los resultados de los cálculos correspondientes se pueden escribir en la vecindad de las líneas que representan estos caminos.
Muestra una decisión o función de tipo interruptor con una entrada y dos o más salidas alternativas, de las cuales solo se puede seleccionar una después de evaluar las condiciones definidas dentro de este elemento. La entrada a un elemento se indica mediante una línea que suele entrar en el vértice superior del elemento. Si hay dos o tres salidas, generalmente cada salida se indica con una línea que sale de los vértices restantes (lado e inferior). Si hay más de tres salidas, deben mostrarse como una sola línea que sale de la parte superior (a menudo la parte inferior) del elemento, que luego se bifurca. Los resultados de los cálculos correspondientes se pueden escribir junto a las líneas que representan estos caminos. Ejemplos de solución: en el caso general - comparación (tres salidas: >, <, =); en programación , operadores condicionales if(dos salidas: true, false) y case(múltiples salidas).
El símbolo representa la entrada del entorno externo y la salida del entorno externo (comienzo o final del esquema del programa, uso externo y origen o destino de los datos).
En la práctica, las siguientes descripciones de los limitadores tienen sentido: inicio/fin, inicio/detención, reinicio (implica un reinicio del diagrama de flujo dado), error (implica la finalización del algoritmo con un error), excepción (implica la ejecución de una excepción de software)
El símbolo de dos partes representa el inicio y el final del ciclo. Ambas partes de un símbolo tienen el mismo identificador. Las condiciones de inicialización, incremento, terminación, etc. se colocan dentro de un símbolo al principio o al final, dependiendo de la ubicación de la operación que prueba la condición.
Un ejemplo de un diagrama de flujo para calcular factorial usando un bucle Ejemplo de bucles anidadosEl símbolo representa una salida a una parte de un circuito y una entrada desde otra parte de ese circuito, y se usa para romper una línea y continuarla en otro lugar. Los caracteres de conector correspondientes deben contener el mismo designador único.
Dividir el algoritmo en dos partes usando conectoresEl símbolo se utiliza para agregar comentarios descriptivos o notas explicativas con fines de explicación o notas. Las líneas discontinuas en un símbolo de comentario están asociadas con el símbolo correspondiente o pueden rodear un grupo de símbolos. El texto de los comentarios o notas debe colocarse cerca de la forma delimitadora.
Además, se debe usar un símbolo de comentario en los casos en que la cantidad de texto colocado dentro de un símbolo determinado (por ejemplo, un símbolo de proceso, un símbolo de datos, etc.) exceda el tamaño de este símbolo en sí. Los comentarios se utilizan junto con los terminadores para describir los argumentos de entrada de un algoritmo al describir funciones.
El símbolo está representado por dos líneas paralelas, que representan el tiempo de dos o más operaciones paralelas. Si varias operaciones ingresan líneas paralelas, la ejecución del algoritmo continuará solo si todos los procesos entrantes finalizan.
Las acciones paralelas se pueden utilizar para procesos asincrónicos o para procesos cuya secuencia no es importante. En el ejemplo presentado, vale la pena señalar que los procesos creados en las mismas líneas paralelas no tienen que terminar también en paralelo.
La descripción de otros elementos del circuito se puede encontrar en el GOST [1] correspondiente . Los elementos incluyen:
El orden de las acciones se establece conectando los vértices con arcos, lo que nos permite considerar los diagramas de flujo no solo como una interpretación visual del algoritmo, conveniente para la percepción humana, sino también como un gráfico dirigido (el llamado diagrama gráfico del algoritmo , GSA). Una representación similar de algoritmos se utiliza en la construcción de sistemas de control lógico que implementan algoritmos de control dados, en tareas de paralelización de cálculos , etc.
Una práctica común y errónea es tratar de usar diagramas de flujo para ilustrar un algoritmo en un nivel bajo (a nivel de código), es decir, un intento de encajar fragmentos de código en algún lenguaje artificial en bloques de un diagrama. Este enfoque es aplicable solo a programas organizados de acuerdo con el enfoque estructural y no puede reflejar, por ejemplo, un algoritmo que se implementa en la interacción de abstracciones en un enfoque orientado a objetos. A los efectos de describir algoritmos, la interacción de partes del sistema e ilustrar muchas otras cosas relacionadas, existe la notación UML . .