Diagramas de Flujo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 26

¿Qué son los Diagramas de Flujo?

Un diagrama de flujo es un tipo de diagrama que representa un algoritmo o proceso, que


muestra las etapas como bloques de varios tipos, y su orden mediante conexiones con
flechas.

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.

Los flujos de datos no se suelen representar en un diagrama de flujo, en contraste


con diagramas de flujo de datos, sino que están implícitos en la secuencia de las
operaciones. Los diagramas de flujo son usados en el análisis, diseño, documentación o la
gestión de un proceso o programa en varios campos.

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:

 A un paso de procesamiento, generalmente se le llama actividad, y se denota como


una caja rectangular.
 A una decisión, se le denota generalmente como un diamante.

Un diagrama de flujo es descrito


como"multifuncional" cuando la página se divide en diferentes "carriles" que describen el
control de las diferentes unidades organizativas. Un símbolo que aparece en un "carril" está
bajo el control de esa unidad organizativa. Esta técnica permite al autor localizar la
responsabilidad de realizar una acción o de tomar una decisión correcta, mostrando la
responsabilidad de cada unidad organizacional para diferentes partes de un mismo proceso.

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.

Bloques de Construcción de Diagramas de Flujo


Símbolos
Un diagrama de flujo típico de los antiguos libros de texto básicos de informática puede tener
los siguientes tipos de símbolos:

Símbolos Inicio y Fin

Representado como círculos, óvalos o rectángulos


redondeados, que normalmente contiene la palabra "Inicio" o "Fin", u otra frase que marca el
inicio o el final de un proceso, como "enviar consulta" o "recibir producto".

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.

Pasos genéricos de procesamiento


Son Representados como rectángulos. Ejemplos: "Añadir 1 a X", "reemplazar parte
identificada", "guardar cambios", etc.

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.

Conectores con etiqueta


Son Representado por una etiqueta en el interior de un círculo, se emplean en los diagramas
complejos o multi-hoja para sustituir a las flechas. Para cada etiqueta, el conector de "flujo de
salida" siempre debe ser único, pero puede haber cualquier cantidad de conectores de "flujo
entrada". En este caso, un punto de unión en el flujo de control está implícita.

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.

Tipos de diagrama de flujo


Sterneckert (2003) sugirió que los diagramas de flujo pueden ser modelados desde la
perspectiva de diferentes grupos de usuarios (por ejemplo, administradores, analistas de
sistemas y empleados) y que hay cuatro tipos generales:
 Diagramas de flujo de documentos, mostrando los controles sobre el flujo de un
documento a través de un sistema.
 Diagramas de flujo de datos, mostrando los controles sobre un flujo de datos de un
sistema.
 Diagramas de flujo de sistemas que muestran los controles a nivel físico o de
recursos.
 Diagrama de flujo de programa, que muestra los controles en un programa dentro de
un sistema.

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.

Programas online para graficar diagramas de flujo:

https://www.lucidchart.com
https://grapholite.com/Designer/

http://www.gliffy.com/

https://www.draw.io
http://www.drawanywhere.com

Programas para simular (ejecutar) diagramas de flujo:


FreeDFD 1.1 es una aplicación que permite crear diagramas de flujo de datos, que se pueden
utilizar para representar gráficamente una amplia gama de algoritmos, ejecutarlos y depurarlos
si se encuentran errores.

http://code.google.com/p/freedfd/

PSeInt es una herramienta para aprender la lógica de programación. Mediante la utilización de


un simple y limitado pseudo-lenguaje, intuitivo y en español, permite comenzar a comprender
conceptos básicos y fundamentales de un algoritmo computacional.
http://pseint.sourceforge.net/

Determinar la suma de 2 números – Diagrama de Flujo


Problema
Determinar un algoritmo que permita determinar la suma de 2 números

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.

Diagrama de Flujo Determinar la suma de 2 numeros

Diagrama de Flujo en FreeDFD

Código fuente en Java

Código fuente en C++

Código fuente en C

Código fuente en C#
Código fuente en Python

Código fuente en Visual Basic

Publicado por George Tacuri en 7:05 6 comentarios Enlaces a esta entrada


Etiquetas: DFD, diagrama de flujo , diagrama de flujo de datos

sábado, 16 de febrero de 2013

Convertir a números ordinales entre 1 y 999 – Diagrama de


flujo
Realizar un algoritmo que permita convertir un número arábigo comprendido entre 1 y 999 a números
ordinales. Ejemplo

 Entrada: 697

 Salida: sexcentesimo nonagesimo séptimo

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 ObtenerUnidadesDecenasCentenas, se obtiene las unidades con N MOD 10 y se


guarda en la variable “u”, las decenas con TRUNC(N/10) MOD 10 y se guarda en la variable “d”, las
centenas con TRUNC(N/100) y se guarda en la variable “c”.
Ejemplo
Numero = 584
u = 584 MOD 10 = 4
d = TRUNC(584/10) MOD 10 = 8
c = TRUNC(584/100) = 5
Las variable c, d, u nos sirven como índices en los arreglos respectivos para hallar número ordinal
correspondiente.
Diagrama de Flujo - Subrutina ObtenerUnidadesDecenasCentenas

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

Diagrama de Flujo en FreeDFD

Código fuente en Java

Código fuente en C++

Código fuente en C

Código fuente en C#
Código fuente en Python

Código fuente en Visual Basic

Publicado por George Tacuri en 0:26 0 comentarios Enlaces a esta entrada


Etiquetas: DFD, diagrama de flujo de datos , diagrama flujo

martes, 15 de enero de 2013

FreeDFD - Programa para realizar Diagramas de Flujo


FreeDFD 1.1 es una aplicación que permite crear diagramas de flujo, que se pueden utilizar para
representar gráficamente una amplia gama de algoritmos, ejecutarlos y depurarlos si se encuentran
errores. Con este programa, usted será capaz de guardar los diagramas en el disco duro o imprimirlos.

A continuación en el siguiente vídeo se describen las principales funcionalidades del programa


FreeDFD:

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

jueves, 3 de enero de 2013

Calcular el descuento y sueldo neto de un trabajador dado su


sueldo – Diagrama de flujo
Problema
A un trabajador le descuentan de su sueldo el 10%, si su sueldo es menor o igual a 1000, si es por
encima de 1000 y hasta 2000 el 5% del adicional (es decir del monto que sobrepasa de 1000), y por
encima de 2000 el 3% del adicional (es decir del moto que sobrepasa de 2000). Calcular el descuento y
sueldo neto que recibe el trabajador dado su sueldo.

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 de flujo - Calcular el descuento y sueldo neto de un trabajador dado su sueldo.

Diagrama en FreeDFD

Código fuente en Java

Código fuente en C++

Código fuente en C
Código fuente en C#

Código fuente en Python

Código fuente en Visual Basic

Publicado por George Tacuri en 21:51 4 comentarios


Etiquetas: DFD, diagrama de flujo , diagrama de flujo de datos , diagrama flujo,ejercicios
resueltos

Calcular porcentaje de aporte de tres socios – Diagrama de


flujo
Problema
Juan, Raquel y Daniel aportan cantidades de dinero para formar un capital. Juan y Raquel aportan en
dólares y Daniel en soles. Diseñe un programa que determine el capital total en dólares y que porcentaje
de dicho capital aporta cada uno. Considere que: 1 dólar = 3.25 soles.

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 Java

Código fuente en C++

Código fuente en C

Código fuente en C#

Código fuente en Python


Código fuente en Visual Basic

Publicado por George Tacuri en 21:17 1 comentarios


Etiquetas: DFD, diagrama de flujo , diagrama de flujo de datos , diagrama flujo,ejercicios
resueltos

Calcular la secuencia de asteriscos en forma de triángulo –


Diagrama de flujo
Problema
Diseñar un algoritmo que muestre la siguiente serie
*
**
***
****
*****

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 Java

Código fuente en C++

Código fuente en C

Código fuente en C#

Código fuente en Python


Código fuente en Visual Basic

Publicado por George Tacuri en 20:51 2 comentarios


Etiquetas: DFD, diagrama de flujo , diagrama de flujo de datos , diagrama flujo,ejercicios
resueltos

Calcular la serie 1223334444… – Diagrama de flujo


Problema
Diseñar un algoritmo que muestre la siguiente serie 1223334444...NNNN.

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.

Diagrama de flujo - Calcular la serie 1223334444…


Diagrama en FreeDFD

Código fuente en Java

Código fuente en C++

Código fuente en C

Código fuente en C#

Código fuente en Python

Código fuente en Visual Basic

También podría gustarte