Diagramas de Flujo
Diagramas de Flujo
Diagramas de Flujo
Esta representación esquemática puede dar la solución paso a paso de un problema dado.
Las operaciones de proceso están representadas en estos bloques y las flechas que los
conectan representan el control de flujo.
Descripción general
Los diagramas de flujo se utilizan en el diseño y documentación de procesos complejos o
programas. Como otros tipos de diagrama, ayudan a visualizar lo que está pasando y de esa
manera ayudan al espectador a entender un proceso, y tal vez también ha encontrar defectos,
cuellos de botella, y otros problemas. Hay muchos tipos diferentes de diagramas de flujo, y
cada tipo tiene su propio repertorio de cajas y convenciones de notación.
Los dos tipos más comunes de cajas en un diagrama de flujo son:
Los Diagramas de flujo representan ciertos aspectos de los procesos y por lo general se
complementan con otros tipos de diagrama. Por ejemplo, Kaoru Ishikawa definió el diagrama
de flujo como una de las siete herramientas básicas de control de calidad, al lado del
histograma, diagrama de Pareto, hoja de verificación, gráfico de control, diagrama de causa y
efecto, y el diagrama de dispersión. De manera similar, en UML, un lenguaje estándar de
modelado que se utiliza en el desarrollo de software, el diagrama de actividad (que es un tipo
de diagrama de flujo) es sólo uno de los muchos tipos de diagramas diferentes.
Historia
El primer método estructurado para documentar el flujo de un proceso, el "diagrama de flujo
del proceso", fue presentado por Frank Gilbreth a los miembros de la Sociedad Americana de
Ingenieros Mecánicos (ASME) en 1921 en la exposición “Process Charts - First Steps in
Finding the One Best Way”.
Las Herramientas de Gilbreth rápidamente encontron su aplicación en los programas de
ingeniería industrial. A principios de 1930, un ingeniero industrial, Allan H. Mogensen comenzó
la formación de personas de negocios en el uso de algunas de las herramientas de la
ingeniería industrial en sus "Work Simplification Conferences en Lake Placid, New York.
Douglas Hartree explica que Herman Goldstine y John von Neumann elaboró un diagrama de
flujo (originalmente, el diagrama) para planificar los programas de ordenador. Su versión
contemporánea está respaldado por los ingenieros de IBM y por colecciones personales de
Goldstine. Los diagramas de flujo de programación originales de Goldstine y von Neumann se
puede ver en su informe no publicado, "Planificación y codificación de problemas para un
instrumento de computación electrónica, Parte II, Volumen 1" (1947), que se reproduce en las
obras completas de von Neumann.
Los diagramas de flujo solía ser un medio popular para describir algoritmos computacionales y
todavía se utilizan para este fin. Técnicas modernas tales como diagramas de actividad de
UML puede ser considerado como extensiones del diagrama de flujo. En la década de 1970 la
popularidad de los diagramas de flujo como método propio disminuyó cuando las terminales
de ordenador y lenguajes de programación de tercera generación se convirtieron en
herramientas comunes, ya que los algoritmos se pueden expresar de manera mucho más
concisa como código fuente de un lenguaje, y también porque era más probable que el
diseño de algoritmos usando diagramas de flujo resulte en código-espagueti, debido a la
necesidad de los "gotos" para describir saltos arbitrarios en el control flujo del programa.
Flechas
Muestran el "control de flujo". Una flecha que viene de un símbolo y termina en otro símbolo
indica que el control pasa al símbolo que la flecha apunta. La línea de la flecha puede ser
continua o discontinua. El significado de la flecha con línea de trazos puede diferir de un
diagrama de flujo a otro y puede ser definido en la leyenda.
Subrutinas
Son representados como rectángulos con doble borde vertical, los cuales se utilizan para
mostrar los pasos de procesamiento complejos que pueden ser detallados en un diagrama de
flujo separado.
Entrada / Salida
Representado como un paralelogramo. Ejemplos: Obtener X por parte del usuario, mostrar en
pantalla X.
Condicional o decisión
Representado como un diamante (rombo) mostrando donde una decisión se debe tomar,
comúnmente se realiza una pregunta que debe tener un tipo de respuesta Sí/No. El símbolo
condicional tiene la peculiaridad de que tiene dos flechas que salen de él, correspondiente al
Sí o Verdadero, y No o falso. (Las flechas siempre deben ser etiquetadas.) Se pueden utilizar
más de dos flechas, pero esto es normalmente un claro indicador de que una decisión
compleja está siendo tomada, en cuyo caso es posible que tenga que ser descompuesto aún
más.
Símbolo de concurrencia
Representada por una doble línea transversal con cualquier número de flechas de entrada y
salida. Estos símbolos se utilizan cada vez que dos o más flujos de control deben funcionar
simultáneamente. Los flujos de salida se activan simultáneamente cuando todos los flujos de
entrada han alcanzado el símbolo de concurrencia.
Es importante recordar que debe mantener estas conexiones lógicas en orden. Todos los
procesos deben fluir de arriba hacia abajo y de izquierda a derecha.
Observe que cada tipo de diagrama de flujo que se centra en algún tipo de control, en lugar de
en el propio flujo particular.
Software
Cualquier programa de dibujo puede ser usado para crear diagramas de flujo, pero éstos no
tienen un modelo de datos subyacente para compartir datos con bases de datos u otros
programas, como los sistemas de gestión de proyectos y hojas de cálculo.
Algunas herramientas ofrecen un apoyo especial para dibujar diagramas de flujo. Muchos
paquetes de software existentes que pueden crear diagramas de flujo de forma automática, ya
sea directamente desde el código fuente, o de un lenguaje de descripción de diagrama de
flujo.
https://www.lucidchart.com
https://grapholite.com/Designer/
http://www.gliffy.com/
https://www.draw.io
http://www.drawanywhere.com
http://code.google.com/p/freedfd/
Solución
Entrada: 19 , 9
Salida: 28
Se solicita al usuario ingrese dos números, las cuales se capturan en las variables “a”, “b”, luego
realizamos la operación a + b, la cual se asigna a la variable suma, para después mostrar el resultado de
la operación realizada.
Código fuente en C
Código fuente en C#
Código fuente en Python
Entrada: 697
Se llama a la subrutina Inicializar, donde inicializamos los arreglos correspondientes, luego se solicita
al usuario ingrese un numero entre 1 y 999, luego se captura el numero ingresado en la variable “N”,
llamamos a la Subrutina ObtenerUnidadesDecenasCentenas para obtener las unidades, decenas y
centenas del numero ingresado, luego llamamos a la subrutina ConvertirNumero el cual retornara el
numero ingresado en números ordinales.
Diagrama de Flujo - Convertir Numero Entero a Numero Ordinal
Diagrama de Flujo - Subrutina InicializaUnidades
En la Subrutina InicializaDecenas, se crea un arreglo Decena que contiene a los números ordinales,
Decena
={“”,“decimo”,“vigesimo”,“trigesimo”,“cuadragesimo”,”quincuagesimo”,“sexagesimo”,“septuagesimo”
,“octogesimo”,“nonagesimo” }, donde Decena(9)=“nonagesimo” que corresponde al número noventa.
Diagramas de Flujo - Subrutina InicializaDecenas
La Subrutina InicializaCentenas, se crea el arreglo Centena la cual contiene los números ordinales entre
100 y 900, Centena = {“”,“centesimo”,“ducentesimo”,“tricentesimo”,“ cuadringentesimo”,“
quingentesimo”,“ sexcentesimo”,“ septingentesimo”,“ octingentesimo”,“ noningentesimo”}, donde
Centena(7)=” septingentesimo” que corresponde al número 700.
Diagrama de Flujo - Subrutina InicializaCentenas
En la subrutina ConvertirNumero
Se compara si el número es mayor igual a 100(N>=0)
Si es Verdadero (Si)
Mostramos como respuesta los números entre 100 y 999 en ordinales
Si es Falso (No)
Se compara si el número es mayor igual a 10 (N>=0)
Si es Verdadero (Si)
Mostrará como respuesta los números entre 10 y 99 en ordinales
Si es Falso (No)
Mostrará como respuesta los numero entre 1 y 9 en ordinales
Diagrama de Flujo - Subrutina ConvertirNumero
Código fuente en C
Código fuente en C#
Código fuente en Python
Interfaz de Usuario
DFD posee una ventana de principal que proporciona el ambiente de trabajo donde se puede construir y
analizar los algoritmos. Los componetes básicos de la ventana principal son: la barra de menú, barras de
desplazamiento y el área de trabajo.
Descargar DFDFree
Publicado por George Tacuri en 21:29 5 comentarios
Etiquetas: DFD
Solución
Entrada: 1000
Salida: Sueldo 900, descuento 100
Se solicita que el trabajador ingrese su sueldo, el cual se calcula en la variable “s”, luego
Se comprueba si el sueldo es mayor a 2000 (s > 2000)
Si es Verdadero (Si)
Se calcula el descuento con 100 + (s-1000)*0.03, donde 100 es el descuento base que se da si gana 1000.
Se calcula el monto a recibir con ( s – d)
Si es Falso (No)
Se comprueba si el sueldo esta entre 1000 y 2000 (s > 1000 and s <= 2000)
Si es Verdadero (Si)
Se calcula el descuento con 100 + (s-1000)*0.05, donde 100 es el descuento base que se da si gana 1000.
Se calcula el monto a recibir con (s – d)
Si es Falso (No)
Se calcula el descuento con s*0.10, Se calcula el monto a recibir con (s – d)
Se muestra el descuento y el monto a recibir por parte del trabajador.
Fin.
Diagrama en FreeDFD
Código fuente en C
Código fuente en C#
Solución
Se solicita al usuario ingrese le monto de los aportes de juan, Raquel y Daniel, el cual se guarda en las
variables “ju”, “ra” y “da”, luego realizamos una conversión del monto de Daniel de soles a dólares con
(da / 3.25), luego se realiza el calculo del total con (ju + ra + dol), luego se calcula el porcentaje de los
aportes de cada socio, el porcentaje de Raquel con (ra/tota*100), el porcentaje de juan con
(ju/total*100), el porcentaje de Daniel con (dol/total*100), se muestra los resultados. Fin.
Diagrama de flujo - Calcular porcentaje de aporte de tres socios.
Diagrama en FreeDFD
Código fuente en C
Código fuente en C#
Solución
Se solicita al usuario ingrese un numero para indicar el número de niveles que tendrá el triángulo de
asteriscos, se captura este valor en la variable “n”, se crea un ciclo For, que realizara “n” iteraciones, en
cada iteración, se inicializa la variable “x” con una cadena vacia, se crea un ciclo For,el cual concatenara
los asteriscos, y los asigna en la variable “x”, finaliza el ciclo interior, se muestra la cadena de asteriscos,
se finaliza el ciclo. Fin.
Diagrama de flujo - Calcular la secuencia de asteriscos en forma de triángulo
Diagrama en FreeDFD
Código fuente en C
Código fuente en C#
Solución
Se solicita al usuario ingresar un numero hasta donde se desea que se muestre la serie, se
captura este valor en la variable “n”, se crea un ciclo For, en el cual realizara “n” iteraciones ,
en cada iteración se crea un ciclo For que tendrá “y” iteraciones , en cada iteración se muestra
el valor de la variable “y”, finalizan los ciclos. Fin.
Código fuente en C
Código fuente en C#