La mayoría de los procesos pueden graficarse en 4 ó 5 recuadros que representan los principales pasos o actividades del proceso. En realidad, es buena idea usar solamente 4 ó 5 recuadros, porque no obliga a tener en cuenta los pasos más importantes. Los demás pasos son normalmente subpasos de los más importantes.
Flujograma de segundo nivel o detallado
Un flujograma detallado indica los pasos o actividades de un proceso e incluye, por ejemplo, puntos de decisión, períodos de espera, tareas que se tienen que volver a hacer con frecuencia (repetición de tareas o tareas duplicadas) y ciclos de retroalimentación. Este tipo de diagrama de flujo es útil para examinar áreas del proceso en forma detallada y para buscar problemas o aspectos ineficientes.
Flujograma de ejecución o matriz
Un flujograma de ejecución representa en forma gráfica el proceso en términos de quién se ocupa de realizar los pasos. Tiene forma de matriz e ilustra los diversos participantes y el flujo de pasos entre esos participantes. Es muy útil para identificar quién proporciona los insumos o servicios a quién, así como aquellas áreas en las que algunas personas pueden estar ocupándose de las mismas tareas.
REGLAS PARA ESTRUCTURAR UN DIAGRAMA DE FLUJO
El sentido de un diagrama de flujo generalmente es de arriba hacia abajo.
Es un símbolo solo puede entrar una flecha de flujo si varias líneas se dirigen al mismo símbolo, se deben unir en una sola flecha.
Las líneas de flujo no deben cruzarse, para evitar los cruces se utilizan los conectores.
De un símbolo excepto el de decisión, solo puede salir una línea de flujo.
Los símbolos Terminal, Conector dentro de página y conector fuera de página solo pueden estar conectados al diagrama por una sola flecha, ya que por su naturaleza es imposible que tenga una entrada y una de salida.
Los émbolos de decisión tendrán siempre una sola flecha de entrada y dos o tres flechas de salida según la cantidad de alternativas que se presentan.
Un diagrama de flujo debe estar complemente cerrado, teniendo una continuidad de principio a fin, no pueden quedar flechas en el aire ni símbolos sin conexión al diagrama pues el flujo seria interrumpido.
Ejercicios de diagrama de flujo
01) Búsqueda de un elemento en un conjunto:
_ se sabe que el elemento está
_ no se sabe si el elemento está
Problema: Buscar una carta
Se tiene un mazo de cartas inglesas, el cual no está completo, pero se sabe
que tiene .n. cartas, y está desordenado. Se desea determinar si una carta
determinada está o no en el mazo, y si está, en qué posición
En este caso no sabemos si la carta está o no en el mazo.
Solución usando bandera para señalar que la carta está:
Inicio
Entrada: n % total de cartas en el mazo
Entrada: buscado % carta que quiero buscar
contador _ 1
bandera _ 0
entrada: carta % valor de la carta
mientras (contador < n)
{entrada: carta
contador _ contador +1
si (carta = buscado)
{ bandera _ 1
pos_buscado _ contador
}
}
}
si ( bandera = 0)
{ salida: .la carta no está en el mazo.
}
sino
{ salida: .la carta está en la posición:., contador
}
Fin
Otro algoritmo:
Inicio
Entrada: n % total de cartas en el mazo
Entrada: buscado % carta que quiero buscar
contador _ 1
entrada: carta % valor de la carta
mientras (buscado != carta & contador < n)
{entrada: carta
contador _ contador +1
}
si ( buscado = carta)
{ salida: .la carta está en la posición:., contador
}
sino
{ salida: .la carta no está en el mazo.
}
fin
02) Problema:
Si sabemos que la carta está en el mazo ¿Cómo puede variar los algoritmos
Anteriores? ¿Es mejor el algoritmo en este caso? ¿Por qué?
Problema:
Problema anterior, pero que despliegue un mensaje .encontrado. cada vez
que encuentre la carta, y la cantidad de veces que la ha encontrado hasta
ese momento.
Problema:
Como puede variar el problema si los números se ingresan ordenados.
Problema:
Buscar la carta mayor de un mazo no completo, que tiene .n. cartas.
Indicar la posición en que se encuentra
En este caso, la carta buscada está en el mazo, pero no
sabemos cual es. Debe de todas maneras mirar el mazo hasta
la última carta
Inicio
Entrada: n
Entrada: carta
mayor _ carta
pos_mayor _ 1
contador _ 1
mientras (contador mayor)
{mayor _ carta
pos_mayor _ contador +1
}
contador _ contador +1
}
salida: .La carta mayor es.,mayor
salida: .la posición del mayor es:.,pos_mayor
fin
03) Problema:
Buscar la menor, y la cantidad de veces que esta carta se repite
Problema:
Dada como entrada una hora en formato hh:mm, [24], genere como salida
la misma hora pero en formato hh:mm [am/pm]
Para ello considere:
0 hrs –> 12 pm
1 –> 1 am
12 –> 12 am
13 –> 1 pm
23 –> 11 pm
Problema: factorial
Dado un entero positivo, .n., calcule el factorial de .n.
Inicion
Entrada: n
factorial _ 1
mientras (n > 1)
{ factorial _ factorial * n
n _ n -1
} salida: factorial
fin
Problema: serie de ulam
Dado un valor inicial .x., se pide generar los términos de la serie de Ulam.
Se dice que cualquier número menor que 1800 converge a 1 si se calcula
cada término siguiendo las reglas de la serie de Ulam.
La regla para calcular el término siguiente a .x.es:
_ Si x par, el siguiente término se obtiene dividiendo x por 2
_ Si x es impar, el siguiente término se obtiene multiplicando x por 3 y
sumando 1 al resultado.
Por ejemplo:
x = 45
x_1 = (45*3)+1 = 136
x_2 = (136/2) = 68
x_3 = (68 /2) =34
x_4= (34/2) = 17
x_5 = (17*3)+1 =52
…
26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Inicio
Entrada: x
salida: x
mientras (x>1)
{ si (x % 2 =0)
{ x _ x/2
salida: x
}
sino
{ x _ x*3+1
salida: x
}
} fin
04) Diseñar un diagrama de flujo que permita ingresar al usuario un
primer elemento de la serie y luego un segundo elemento de tal manea que
ambos elementos definen un grupo de elementos de la serie(rango) y luego
calcular la suma acumulada de la serie: 1+2+3+4+5+ 6 +…+ n..
Solución.
a).- Se define un Contador (Cont_I) para que defina lado izquierdo de la serie y
Lado_d, lado derecho como segundo elemento de la serie. Ambos elementos
definen un intervalo, bajo el cual se calcula la suma. Asimismo se define el
acumulador (Acum) que va acumulando los valores según como avance el
contador.
b).- La condición de terminación esta controlado por: Cont_I = 100)
{ m100 ____ m100 +1
monto _ monto . 100
} Salida: .
de 100:.
,
m100
Mientras (monto >= 10)
{ m10 ____ m10 +1
monto ____ monto . 10
} Salida: .
de 10:.
,
m10
Salida: .de 1:., monto
Fin
Otra solución:
Inicio
Entrada: monto
total ____ 0
denominación ____ 1000
Mientras (monto >= 10)
{ Mientras (monto >= denominacion)
{ total ____ total + 1
monto ____ monto . denominacion
} Salida: .
de.
,
denominacion ,
total
total ___ 0
denominacion _ denominacion / 10
} Salida: .
de 1:.
,
monto
Fin
CONCLUSIÓN
Los diagramas de flujos de datos (como herramienta), son de gran relevancia e importancia para la programación de computadoras y diseño de software, ya que son un instrumento fundamental para el desarrollo de habilidades y destrezas lógicas, logrando así ejercitar la creatividad del pensamiento humano. Igualmente su utilización es tan importante, porque nos facilita la manera de representar visualmente el flujo de datos por medio de un sistema de tratamiento de información, en este realizamos un análisis de los procesos o procedimientos que requerimos para realizar un programa o un objetivo.
Autor:
Eduar Osuna
Carrera: inform?tica
Yoused Romero
Carrera: electr?nica
Republica Bolivariana de Venezuela
Ministerio del Poder Popular para la Educacion Superior
"Instituto Universitario de Tecnologia Readic"
Página anterior | Volver al principio del trabajo | Página siguiente |