ElTicus.com

Programación, lenguajes y recursos para programadores

**
Recurso no clasificado
Diagramas de flujo
Bases para la diagramaci贸n de algoritmos
Publicado por JL Fecha: 2006-12-14 19:12:15 Idioma: Espa帽ol Tipo de documento: Art铆culo

Diagramas de flujo


Bases para la diagramaci贸n de algoritmos


Juan Luis Campos Salcedo


Ingeniero en Telem谩tica

Introducci贸n

Un diagrama de flujo es la representaci贸n gr谩fica de un proceso. Un diagrama de flujo tiene como objetivo facilitarnos la comprensi贸n de un algoritmo o simplificar el an谩lisis de un proceso. El diagrama de flujo consta de s铆mbolos como cuadros, rombos, 贸valos, etc. que representan a cada uno de los pasos a seguir durante un proceso. Estos s铆mbolos est谩n conectados por flechas de un solo sentido y nos indican la secuencia en que se van desarrollando las distintas tareas.

Los diagramas de flujo se desarrollaron con la idea de representar procesos en 谩reas como la administraci贸n de empresas, la planeaci贸n de proyectos, la manufactura de productos, la planificaci贸n de estrategias de ventas y muchas 谩reas m谩s, no obstante, han cobrado un inter茅s muy especial en el an谩lisis y planeaci贸n de procesos para el desarrollo de sistemas computacionales. Y al mismo tiempo han demostrado tener una gran utilidad en el proceso de aprendizaje y formaci贸n de futuros desarrolladores de software.

Los diagramas facilitan la comprensi贸n de m茅todos de soluci贸n para problemas matem谩ticos y l贸gicos, permitiendo a los estudiantes abstraerse de un lenguaje determinado y enfocarse en el procedimiento de soluci贸n. De este modo, la posterior etapa de codificaci贸n se simplifica enormemente al tener ya resuelta la metodolog铆a a trav茅s de un diagrama de flujo.

Existen diferentes s铆mbolos utilizados en la diagramaci贸n, de los cuales podemos destacar cinco s铆mbolos b谩sicos con los cuales se puede representar pr谩cticamente cualquier algoritmo inform谩tico por muy complejo que 茅ste sea.

Estos s铆mbolos son los siguientes


Simbolo Descripci贸n
Inicio / Terminaci贸n. Este s铆mbolo se utiliza para se帽alar el comienzo as铆 como el final de un diagrama. Tradicionalmente se colocan las palabras 鈥淚NICIO鈥 贸 鈥淔IN鈥 dentro de la figura para hacerlo m谩s expl铆cito.

Es el 煤nico s铆mbolo que solamente tiene una conexi贸n (flecha) ya sea de salida, en el de inicio, o de entrada, para el de fin.


Entrada de datos. En este s铆mbolo se indican los valores iniciales que deber谩 recibir el proceso. Esto se hace asign谩ndoles letras o nombres de variables para cada uno de los valores y anotando estas letras en el interior de la figura.

Existen otros s铆mbolos que tambi茅n representan una entrada de datos pero no consideramos que su utilizaci贸n, o combinaci贸n, aporte mayor utilidad al objetivo intr铆nseco de ejemplificar una entrada de datos.

Este s铆mbolo siempre deber谩 tener al menos una conexi贸n entrante (generalmente del inicio) y una de salida.
Proceso de datos. Este s铆mbolo lo utilizaremos para se帽alar operaciones matem谩ticas, aritm茅ticas o procesos espec铆ficos que se realicen con nuestros datos.

La manera de anotar dichos procesos, puede ser mediante una descripci贸n breve de la operaci贸n o mediante una asignaci贸n de dicha operaci贸n hacia una variable como por ejemplo: R ← A + B

Este s铆mbolo siempre deber谩 tener al menos una conexi贸n de entrada y una de salida.
Decisi贸n. Este s铆mbolo nos representa una disyuntiva l贸gica o decisi贸n. En su interior se anota una instrucci贸n o pregunta que pueda ser evaluada como cierta o falsa y que determine el flujo del programa.

Este s铆mbolo es el 煤nico que puede contener dos salidas y en cada una de las salidas se suele poner un r贸tulo de 鈥渟i/no鈥 o 鈥渃ierto/falso鈥 indicando con esto cual de ellas se tomar谩 seg煤n el resultado de la evaluaci贸n de la funci贸n.

Es una buena pr谩ctica de diagramaci贸n utilizar siempre el mismo lado para los positivos siempre que esto sea posible.


Desplegado de informaci贸n. Este s铆mbolo se utiliza para mostrar un resultado, el cual puede representar la soluci贸n al problema que se pretende resolver y que fue conseguida a trav茅s del resto del diagrama.

Dentro de su interior se anotar谩 la variable con el resultado final o el mensaje que represente el resultado del algoritmo.

Generalmente veremos este s铆mbolo muy cerca del final del proceso y precedido por el s铆mbolo de terminaci贸n.

Este s铆mbolo siempre deber谩 tener al menos una conexi贸n de entrada y una de salida.

En la diagramaci贸n, tambi茅n contamos con una serie de s铆mbolos auxiliares que no intervienen en el proceso del algoritmo, pero que pueden ser 煤tiles para ayudarnos a dar claridad a nuestros diagramas, algunos de ellos son los siguientes:

Simbolo Descripci贸n
Conector. Este s铆mbolo se utiliza para indicar un salto dentro del diagrama. Se utiliza con el prop贸sito de facilitar la disposici贸n plana de un diagrama y evitar el cruce excesivo de l铆neas a trav茅s del mismo.

Este conector va asociado a un conector 鈥済emelo鈥 y junto con 茅l, representa una puerta de entrada y de salida para el flujo del diagrama, es decir que cuando una flecha termina en un conector marcado con la letra 鈥淎鈥, se continuar谩 el diagrama a partir de otro conector marcado con la misma letra tal como si se tratara de una l铆nea continua in interrumpida.
Conector de p谩gina. Este conector es id茅ntico en funcionamiento que el anterior, pero su forma pentagonal lo distingue y nos indica que debemos buscar el 鈥済emelo鈥 en una p谩gina distinta de la actual. Este conector lleva asociado una especie de salto entre p谩ginas.

Cabe mencionar que no se debe abusar del uso de conectores pues de lo contrario comenzar铆a a perderse la claridad que se pretende alcanzar con el diagrama.


Ejemplo de un diagrama de flujo simple:

Consideraciones

Aprovecharemos el diagrama anterior, para mencionar algunas consideraciones importantes:



  • El diagrama puede desarrollarse en cualquier direcci贸n, sin embargo es aconsejable que el desarrollo se realice en lo posible de arriba hacia abajo y de izquierda a derecha.

  • Debe procurarse que el s铆mbolo de inicio se encuentre en la parte superior o superior-izquierda del diagrama.

  • El final se debe procurar que quede en la parte inferior o inferior-derecha. Si esto no es posible, debe separarse ligeramente del cuerpo del diagrama a fin de que sea f谩cilmente identificado.

  • Se pueden utilizar palabras para especificar la acci贸n dentro del s铆mbolo como es el caso de 鈥淚ntroducir A y B鈥, aunque esto es innecesario ya que con poner simplemente 鈥淎, B鈥 se sobreentiende. Es el mismo caso de poner 鈥淐omparar si A>B鈥 o simplemente 鈥淎 > B鈥.

  • Es v谩lido hacer que dos flechas apunten a un s铆mbolo, aunque es m谩s est茅tico hacer que la segunda flecha apunte a la primera que si est谩 apuntando al s铆mbolo, tal como se hace en el caso del 鈥淔IN鈥.

S铆mbolos compuestos (complejos)

En diagramaci贸n se acostumbra tambi茅n el uso de s铆mbolos compuestos que nos reduzcan la complejidad y el tama帽o del diagrama. Estos s铆mbolos representan estructuras de uso com煤n y que ya est谩n adecuadamente definidos. Este es el caso del s铆mbolo de 鈥淐iclo autom谩tico鈥 que es como sigue:


El s铆mbolo del Ciclo autom谩tico representa al ciclo 鈥渇or鈥 de la mayor铆a de los lenguajes.

Para entender mejor este s铆mbolo, veamos el siguiente ejemplo:

En este caso inicialic茅 la variable 鈥渘鈥 con el valor de 1. Y cambi茅 la condici贸n de salida para que comparara con 鈥渕enor o igual鈥 (<=) en lugar de 鈥渕enor que鈥 (<).

El mismo diagrama se puede tambi茅n realizar con los objetos b谩sicos, lo cual se puede dejar como ejercicio para apreciar la ventaja de utilizar s铆mbolos compuestos.


Diagramas de procesos

Los diagramas de procesos son diagramas simplificados en los cuales se utiliza 煤nicamente el s铆mbolo de 鈥減roceso鈥 (rect谩ngulo). Se utilizan para indicar un algoritmo a grandes rasgos o los pasos para realizar una actividad. Estos diagramas te dicen que cosa se hace en cada etapa, sin meterse en detalles de c贸mo se hace.

Ejemplo de un diagrama de procesos:

Estos diagramas no son de mayor inter茅s para el estudio de algoritmos ya que, como se podr谩 apreciar, estos se omiten del mismo.

Ejercicios propuestos



  1. Hacer un diagrama para calcular el 谩rea de un triangulo.

  2. Hacer un diagrama para convertir de grados cent铆grados a grados Fahrenheit.

  3. Hacer un diagrama para imprimir la suma de los n煤meros del 1 al 100.

  4. Hacer un diagrama que te pida un n煤mero y te diga si es par, es non y/o es primo.

  5. Hacer un diagrama para imprimir la sucesi贸n de Fibonacci.

  6. Hacer un diagrama que pida 10 n煤meros y muestre el promedio.

  7. Hacer un diagrama que pida 3 n煤meros y diga cual es el mayor.

  8. Hacer un diagrama que pida la edad y despliegue si es menor de edad (<18), mayor (>=18) o si pertenece a la 3陋 edad.(>=60)

  9. Hacer un diagrama que te pida un n煤mero y te diga si es par, es non y/o es primo.

  10. Hacer un diagrama para calcular el factorial de un n煤mero.

  11. Hacer un diagrama que calcule e imprima N n煤meros primos.

  12. Hacer un diagrama que solicite 4 calificaciones y diga si est谩 reprobado o no, seg煤n las reglas de tu escuela.

  13. Hacer un diagrama que pida un n煤mero N y despliegue todas las combinaciones de dos n煤meros que sumados den N.

  14. Hacer un diagrama que despliegue la tabla de multiplicar de un n煤mero X.

  15. Hacer un diagrama que calcule la probabilidad de que dos dados lanzados sumen 7.

  16. Hacer un diagrama que pida 100 n煤meros y diga cual es la mediana.

  17. Hacer un diagrama que solicite los datos de una matriz de 4x4 y la muestre
  18. invertida.
  19. Hacer un diagrama que pida 3 n煤meros y calcule el com煤n denominador.

  20. Hacer un diagrama que llene una matriz de 3x3 y despliegue los valores de la diagonal principal.

  21. Hacer un diagrama que pida 2 matrices y despliegue el producto cruz de las mismas.








No dejes de revisar los ejercicios resueltos en la secci贸n de Diagramaci贸n.






REFERENCIAS:






Hay 1 comentarios sobre este tema por parte de los lectores


Haz un comentario sobre este tema
Nombre email (no se muestra)
comentario:
Escribe las 2 letras que ves aqu: Imagen anti-spam =

Comentarios de parte de los lectores: