miércoles, 13 de marzo de 2019

algoritmos repetitivos

Es todos los algoritmos realizados hasta este punto, cada instrucción se ha ejecutado sólo una vez ya sea en forma secuencias o en forma selectiva. Sin embargo, con frecuencia, cierto tipo de problemas requieren de la ejecución reiterada o repetida de un grupo de instrucciones.
Por ejemplo, el programa que califica los exámenes de ingreso a la Universidad consta básicamente de un grupo de instrucciones que califican sólo una prueba. Luego, si deseamos procesar todos los exámenes, agregaremos algunas instrucciones el número de veces que sea necesario para procesar la totalidad de los exámenes.
Para la ejecución repetida de un conjunto de instrucciones, los lenguajes de programación ofrecen una variedad de sentencias o códigos, los que se denominan estructuras repetitivas, estructuras iterativas o simplemente bucles.

Tipos de estructuras repetitivas

En forma indistinta se utiliza estructuras repetitivas, estructura iterativa o bucle para referirse a la repetición de un proceso un número fijo o variable de veces.
En el desarrollo de los procesos iterativos se distinguen los siguientes tipos de bucles.
  • Bucles variable:
  • Estructura Repetir Hasta que
  • Estructura Mientras Hacer
  • Bucles fijos
  • Estructura Para
Toda estructura repetitiva tiene las siguientes partes.
  • Inicialización, en la cual se asigna valores iníciales a las variables que intervienen en el test de salida.
  • Actualización, en la que se actualizan las variables que intervienen en el test de salida.
  • Instrucción de proceso, parte del bucle en el que se escriben las instrucciones que se deben repetir.
  • Test de salida, es la que se controla si el bucle continua o se sale del bucle.

Bucles variables

Son estructuras repetitivas en las que no se conoce el número de veces que se ejecutarán las instrucciones que se encuentran dentro del bucle. Por ejemplo, si se trata se contar el numero de dígitos de un número entero positivo no sabemos cuántos dígitos tendrá el número; consiguientemente no se sabe cuantas veces se realizara el proceso de contar. Otro ejemplo es el número de clientes que debe atender un cajero de banco, quien no sabe a priori cuantas personas existen e cola para ser atendidos.

Bucles fijos

Son estructuras repetitivas en que se conoce a priori el número de veces que se ejecutaran las instrucciones que se encentran dentro del bucle. Ejemplo si se trata de ingresar 5 notas a priori se sabe que se debe leer repetidamente 5 notas; consiguientemente el proceso de leer se repetirá 5 veces.
 

Algoritmos selectivos

Algoritmos secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma: 



Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: 

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. 


El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella: 

Asignación 

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: 

  • Simples: Consiste en pasar un valor constante a una variable (a 15)
  • Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a  a + 1)
  • Acumulador: Consiste en usarla como un sumador en un proceso (a  a + b)
  • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4).
En general el formato a utilizar es el siguiente: 

< Variable >      <valor o expresión >

El símbolo      debe leerse “asigne”. 

Escritura o salida de datos 

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: 


Lectura o entrada de datos 

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: 


DECLARACION DE VARIABLES Y CONSTANTES 

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es.

Contador:   ENTERO 
Edad, I:   ENTERO 
Direccion :    CADENA_DE_CARACTERES 
Salario_Basico :    REAL 
Opcion :    CARACTER 

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres. 

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor. 

CONSTANTE Pi 3.14159 
CONSTANTE Msg “Presione una tecla y continue” 
CONSTANTE ALTURA 40 

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. 

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos: 

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. 


Ejemplo 2: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

algoritmos secuenciales

Algoritmos secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma: 



Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: 

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. 


El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella: 

Asignación 

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: 

  • Simples: Consiste en pasar un valor constante a una variable (a 15)
  • Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a  a + 1)
  • Acumulador: Consiste en usarla como un sumador en un proceso (a  a + b)
  • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4).
En general el formato a utilizar es el siguiente: 

< Variable >      <valor o expresión >

El símbolo      debe leerse “asigne”. 

Escritura o salida de datos 

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: 


Lectura o entrada de datos 

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: 


DECLARACION DE VARIABLES Y CONSTANTES 

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es.

Contador:   ENTERO 
Edad, I:   ENTERO 
Direccion :    CADENA_DE_CARACTERES 
Salario_Basico :    REAL 
Opcion :    CARACTER 

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres. 

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor. 

CONSTANTE Pi 3.14159 
CONSTANTE Msg “Presione una tecla y continue” 
CONSTANTE ALTURA 40 

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. 

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos: 

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. 


Ejemplo 2: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

Pseudocodigo

Pseudocodigo.
En ciencias de la computación, y análisis numérico, el pseudocódigo (o lenguaje de descripción algorítmico) es una descripción de alto nivel compacta e informal1​ del principio operativo de un programa informático u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programación real,2​ pero está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.
No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UMLpueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.
Generalmente se utiliza pseudocódigo en los libros de texto y publicaciones científicas relacionadas con la informática y la computación numérica, para la descripción de algoritmos, de manera que todos los programadores puedan entenderlo, aunque no todos conozcan el mismo lenguaje de programación. Generalmente, en los libros de texto se adjunta una explicación que acompaña a la introducción y que explica las convenciones particulares en uso. El nivel de detalle del seudocientífico puede, en algunos casos, acercarse a la de formalizar los idiomas de propósito general.
Un programador que tiene que aplicar un algoritmo específico, sobre todo uno desfamiliarizado, generalmente comienza con una descripción en pseudocódigo, y luego "traduce" esa descripción en el lenguaje de programación meta y lo modifica para que interactúe correctamente con el resto del programa. Los programadores también pueden iniciar un proyecto describiendo la forma del código en pseudocódigo en el papel antes de escribirlo en su lenguaje de programación, como ocurre en la estructuración de un enfoque de Top-down y Bottom-up arriba hacia abajo.
En la actualidad y por lo general, el pseudocódigo, como su nombre lo indica, no obedece a las reglas de sintaxis de ningún idioma en particular ni es de forma estándar sistemática, a pesar de que cualquier escritor en particular vaya a pedir prestado las estructuras de control general, la sintaxis y el estilo, por ejemplo, de algún lenguaje de programación convencional. Pero en caso de que se quiera ejecutar, se debe llevar a forma tipo, para que no genere mensajes de error. Las fuentes populares incluyen la sintaxis de PascalBASICCC++JavaLisp, y ALGOL. Por lo general, se omiten las declaraciones de variables. A veces, las llamadas a funciones, los bloques de código y el código contenido dentro de un loop se remplazan por una sentencia de una línea en lenguaje natural.
Dependiendo del escritor, el pseudocódigo puede variar mucho en su estilo, yendo desde en un extremo, una imitación casi exacta de un lenguaje de programación real, hasta al acercarse a una descripción en prosa de formato de pseudocódigo en el otro extremo.
Este es un ejemplo de pseudocódigo (para el juego matemático bizz buzz):

Diagrama de flujo

El diagrama de flujo o flujograma o diagrama de actividades es la representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como programacióneconomíaprocesos industriales y psicología cognitiva.
En Lenguaje Unificado de Modelado (UML), es un diagrama de actividades que representa los flujos de trabajo paso a paso. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p. ej., gasolina) o energía (p. ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin del proceso.

Normas de trabajo[editar]

Un diagrama de flujo presenta generalmente un único punto de inicio y un único punto de cierre, aunque puede tener más, siempre que cumpla con la lógica requerida.
Las siguientes son acciones previas a la realización del diagrama de flujo:
  • Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos anidados, así como las terceras partes interesadas.
  • Definir qué se espera obtener del diagrama de flujo.
  • Identificar quién lo empleará y cómo.
  • Establecer el nivel de detalle requerido.
  • Determinar los límites del proceso a describir.
Los pasos a seguir para construir el diagrama de flujo son:
  • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
  • Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
  • Si el nivel de detalle definido incluye actividades menores, listarlas también.
  • Identificar y listar los puntos de decisión.
  • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
  • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

Descripción[editar]

En UML 1.x, un diagrama de actividades es una variación del diagrama de estado UNL donde los "estados" representan operaciones, y las transiciones representan las actividades que ocurren cuando la operación se termina.
El diagrama de mensajes de UML 2.0, mientras que es similar en aspecto al diagrama de actividades UML 1.x, ahora tiene semánticas basadas en redes de Petri. En UML 2.0, el diagrama general de interacción está basado en el diagrama de actividades. El diagrama de actividad es una forma especial de diagrama de estado usado para modelar una secuencia de acciones y condiciones tomadas dentro de un proceso.
La especificación del Lenguaje de Notificación Unificado (UNL) define un diagrama de actividad como:
“… una variación de los estados de una máquina, los cuales representan el rendimiento de las acciones o subactividades y las transiciones se provocan por la realización de las acciones o subactividades.”1
El propósito del diagrama de actividad es modelar un proceso de flujo de trabajo (workflow) y/o modelar operaciones.
Una Operación es un servicio proporcionado por un objeto, que está disponible a través de una interfaz.
Una Interfaz es un grupo de operaciones relacionadas con la semántica.

Características[editar]

1.-Según Gómez Cejas, Guillermo. Año 1.997:
a)Sintética: La representación que se haga de un sistema o un proceso deberá quedar resumido en pocas hojas, de preferencia en una sola. Los diagramas extensivos dificultan su comprensión y asimilación, por tanto dejan de ser prácticos.
b)Simbolizada: La aplicación de la simbología adecuada a los diagramas de sistemas y procedimientos evita a los analistas anotaciones excesivas, repetitivas y confusas en su interpretación.
c)De forma visible a un sistema o un proceso: Los diagramas nos permiten observar todos los pasos de un sistema o proceso sin necesidad de leer notas extensas. Un diagrama es comparable, en cierta forma, con una fotografía aérea que contiene los rasgos principales de una región, y que a su vez permite observar estos rasgos o detalles principales.
2.-Según Chiavenato, Idalberto. Año 1.993:
a)Permitir al analista asegurarse que ha desarrollado todos los aspectos del procedimiento.
b)Dar las bases para escribir un informe claro y lógico.
c)Es un medio para establecer un enlace con el personal que eventualmente operará el nuevo procedimiento.
3.-Según Gómez Rondón, Francisco. Año 1.995:
a)De uso, permite facilitar su empleo.
b)De destino, permite la correcta identificación de actividades.
c)De comprensión e interpretación, permite simplificar su comprensión.
d)De interacción, permite el acercamiento y coordinación.
e)De simbología, disminuye la complejidad y accesibilidad.
f)De diagramación, se elabora con rapidez y no requiere de recursos sofisticados.2

Tipos de diagramas de flujo[editar]

  • Formato vertical: en él, el flujo y la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.
  • Formato horizontal: en él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.
  • Formato panorámico: el proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.
  • Formato arquitectónico: describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.

Simbología y significado[editar]

  • Óvalo o Elipse: Inicio y Final (Abre y cierra el diagrama).
  • Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).
  • Rombo: Decisión (Formula una pregunta o cuestión).
  • Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).
  • Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
  • Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).

Cursograma[editar]

Se trata de la más común y práctica entre todas las clases de diagramas de flujo. Describe el flujo de información en un ente u organización, sus procesos, sistemas administrativos y de control. Permite la impresión visual de los procedimientos y una clara y lógica interpretación.

Simbología y normas del diagrama[editar]

  • Círculo: Inicio del Diagrama y Final del Diagrama.
  • Cuadrado: Proceso de control.
  • Línea continua: Flujo de información vía formulario o documentación en soporte de papel escrito.
  • Línea interrumpida: Flujo de información vía formulario digital.
  • Rectángulo: Formulario o documentación. Se grafica con el doble de ancho que su altura.
  • Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etc.). Se grafica con el cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.
  • Triángulo (base inferior): Archivo definitivo.
  • Triángulo Invertido (base superior): Archivo Transitorio.
  • Semióvalo: Demora.
  • Rombo: División entre opciones.
  • Trapezoide: Carga de datos al sistema.
  • Elipsoide: Acceso por pantalla.
  • Hexágono: Proceso no representado.
  • Pentágono: Conector.
  • Cruz de Diagonales: Destrucción de Formularios.
Según la normativa, el flujo presupuesto es de izquierda a derecha y de arriba hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido (de derecha a izquierda o de abajo hacia arriba), es obligatorio el uso de la flecha.3

Historia[editar]

La paternidad del diagrama de flujo es en principio algo difusa. El método estructurado para documentar gráficamente un proceso como un flujo de pasos sucesivos y alternativos, el "proceso de diagrama de flujo", fue expuesto por Frank Gilbreth, en la Sociedad Americana de Ingenieros Mecánicos (ASME), en 1921, bajo el enunciado de "Proceso de Gráficas-Primeros pasos para encontrar el mejor modo". Estas herramientas de Gilbreth rápidamente encontraron sitio en los programas de ingeniería industrial.
Al principio de los 30, un ingeniero industrial, Allan H. Mogensen comenzó la formación de personas de negocios en Lake PlacidNueva York, incluyendo el uso del diagrama de flujo. Art Spinanger, asistente a las clases de Mogesen, utilizó las herramientas en su trabajo en Procter & Gamble, donde desarrolló su “Programa Metódico de Cambios por Etapas”. Otro asistente al grupo de graduados en 1944, Ben S. Graham, director de ingeniería de Formcraft Standard Register Corporation, adaptó la gráfica de flujo de procesos al tratamiento de la información en su empresa. Y desarrolló la gráfica del proceso de múltiples flujos en múltiples pantallas, documentos, y sus relaciones. En 1947, ASME adoptó un conjunto de símbolos derivados de la obra original de Gilbreth como Norma ASME para los gráficos de procesos (preparada Mishad, Ramsan y Raiaan).
Sin embargo, según explica Douglas Hartree fueron originalmente Herman Goldstine y John von Neumann quienes desarrollaron el diagrama de flujo (inicialmente llamado "diagrama") para planificar los programas de ordenador. Las tablas de programación original de flujo de Goldstine y von Neumann, aparecen en un informe no publicado, "Planificación y codificación de los problemas de un instrumento de computación electrónica, la Parte II, Volumen 1 "(1947), reproducido en las obras completas de von Neumann.
Inicialmente los diagramas de flujo resultaron un medio popular para describir algoritmos de computadora, y aún se utilizan con este fin. Herramientas como los diagramas de actividad UML, pueden ser considerados como evoluciones del diagrama de flujo.
En la década de 1970 la popularidad de los diagramas de flujo como método propio de la informática disminuyó, con el nuevo hardware y los nuevos lenguajes de programación de tercera generación. Y por otra parte se convirtieron en instrumentos comunes en el mundo empresarial. Son una expresión concisa, legible y práctica de algoritmos. Actualmente se aplican en muchos campos del conocimiento, especialmente como simplificación y expresión lógica de procesos, etc.

Ventajas[editar]

  • Ayudan a ilustrar modelos y a conectar ideas para aumentar nuestra productividad en el entorno profesional e incentivar nuestra creatividad. 4
  • Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.
  • Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los reprocesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
  • Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.
  • Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.
  • Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado en un ordenador, con un IDE como Free DFD.

Software de diseño de diagramas de flujo[editar]

Actualmente existe una gran cantidad de software para la elaboración de diagramas de flujo. A continuación se listan los programas más comunes para elaborar diagramas de flujo.
  • Microsoft Office ofrece tres herramientas útiles para la elaboración de diagramas. Uno de ellos es Microsoft Word, que nos permite crear diagramas de flujo básicos a través de la opción "Formas" que tiene un apartado especial para diagramas de flujo. De igual manera Microsoft PowerPoint ofrece las mismas opciones para crear los diseños de diagramas de flujo. Otra herramienta un poco más sofisticada es Microsoft Visio, que además de la simbología básica de los diagramas de flujo cuenta con una variedad de herramientas para elaborar otros tipos de diagramas como es el caso diagramas UML entre otros tipos de diagramas de flujo.
  • Otro programa eficiente y muy fácil de usar es LibreOffice Draw que brinda una solución rápida para la creación de diagramas de flujo además de otro tipo de diagramas usados en el ambiente informático. Es considerado la versión no comercial de Microsoft Visio.
También existen aplicaciones que permiten que, una vez que un creador haya diseñado el diagrama de flujo, un usuario final lo utilice y, sobre la base de las opciones que vaya escogiendo, se le vayan mostrando las siguientes etapas hasta llegar a un resultado final. Un ejemplo de este tipo de aplicaciones es iBoske.