02/09/2014, 09:01:36 am

Autor Tema: DFD creador de diagramas de flujo !!!!  (Leído 22451 veces)

Desconectado SLUGER

  • Uzer
  • ***
  • Mensajes: 211
  • Iron maiden
    • Slusoft
DFD creador de diagramas de flujo !!!!
« : 09/10/2008, 07:42:28 pm »
EL ALGORITMO

En palabras sencillas, un algoritmo es una serie de instrucciones que realizadas en orden conducen a la solución de un problema determinado.
También se puede decir que un algoritmo es la fase preliminar a escribir un programa en cualquier lenguaje de programación, por lo que la forma de escribirlo puede ser muy personal según el programador que lo esté diseñando, pero en general se debe hacer en una forma tan clara que cualquier otro programador pueda coger dicho algoritmo, entenderlo fácilmente y poderlo traducir a su lenguaje de programación favorito.

En general, hay varias formas de escribir un algoritmo en el papel: Una de ellas es el diagrama de flujo que consta de rectángulos que encierran las diferentes instrucciones y líneas que apuntan hacia la siguiente instrucción de modo que no se pierda el orden. Además, las operaciones elementales como la entrada de datos, salida de datos, ciclos, etc. (más adelante se explicarán) se reconocen de las demás instrucciones porque no se encierran en rectángulos sino en otra clase de figuras por lo que según la figura en la que esté encerrada la instrucción se reconoce su significado; Es muy didáctico, por lo que es muy fácil de entender así ni siquiera se conozca al programador que diseñó el algoritmo.
Tambien existe el pseudocódigo donde cada instrucción ya no es un dibujo sino una línea escrita y las operaciones elementales se escriben de una forma tan clara que sea imposible que algún programador no las entienda.
Para este tutorial utilizaremos los DIAGRAMAS DE FLUJO, y usaremos el programa DFD para implementar los ejemplos y hacer más sencilla la explicación.

En general, un algoritmo se compone de un inicio, un final y una serie de instrucciones las cuales pueden estar complementadas con condiciones, ciclos, etc.

En los diagramas de flujo, el inicio y el final de un algoritmo se escriben dentro de un CIRCULO a manera de etiqueta, tal y como lo muestra la siguiente imagen:



 Obviamente, entre estas dos "etiquetas" estarán todas las instrucciones de un algoritmo determinado.

Para realizar las instrucciones en un algoritmo, se utilizan básicamente Variables y Operadores.


LAS VARIABLES

En general, las variables son campos en memoria que pueden almacenar cualquier tipo de información (números, letras, frases, valores de verdad, etc. ) que pueden tener cualquier nombre, que preferiblemente debe ser mnemotécnico, es decir, que tenga relación con él o los datos que se almacenarán en la variable.
Los datos numéricos se almacenan en las variables una vez en el ordenador en forma binaria (base 2), y los datos de caracteres como letras y frases se almacenan según el código ASCII de las letras, que es un código aceptado mundialmente para representar todos los caracteres posibles (Por lo menos en muchos idiomas). Este código es un numero desde 0 hasta 255 por lo que se almacena también en forma binaria.
Los nombres de las variables deben seguir unas convenciones generales, que se crearon para evitar confusiones entre las variables y los operadores aritméticos. Estas son:

    * No pueden comenzar con números.
    * No pueden contener símbolos u operadores en ninguna posición del nombre, excepto el carácter "_".
    * No pueden contener espacios.

Como ejemplo aquí hay varios nombres para variables:

    * A : Es un nombre correcto, aunque posiblemente muy poco mnemotécnico.
    * A23: correcto.
    * OJO5MALO : correcto.
    * HOLA# : incorrecto, ya que tiene un símbolo dentro de su nombre.
    * A 23 : incorrecto, porque hay un espacio dentro del nombre.
    * A-23 : incorrecto.
    * A_23 : correcto, ya que el carácter "_" es el único símbolo permitido para nombrar variables; se puede usar para separar palabras dentro del nombre de una misma variable. Otro ejemplo podría ser:
      PRIMER_NOMBRE o RADIO_CIRCULO.

Una característica de las variables es que son Case Sensitive, es decir que son sensibles al hecho de sí el nombre fué escrito con mayúsculas o minúsculas, por lo que si se llamó a una variable A23, dentro de las demás instrucciones del algoritmo, cuando se haga referencia a ésta variable, no podrá utilizarse a23 ya que se tomarían como dos variables diferentes.
Para almacenar valores a las variables se utilizará el operador de asignación (<-) y se lee "a 'variable' se le asigna 'valor'".
Como se dijo anteriormente, una variable puede contener números, letras, frases, etc., por lo que en un lenguaje de programación, sería necesario al principio del algoritmo definir que clase de datos se van a almacenar y en que variables, pero en el caso del diagrama de flujo esto no es necesario y suponemos que una variable puede ser de cualquier "tipo", pero al asignarle un valor que no sea numerico (una letra, o una frase) debemos tener en cuenta que dicho valor debe estar entre comillas simples (ej.: 'frase').

En los diagramas de flujo, las asignaciones a variables se encierran en RECTANGULOS para diferenciarlas de los demás tipos de instrucciones.

Aqui tenemos varios ejemplos de asignaciones en diagramas de flujo:



Como se puede ver en el segundo rectángulo se le asignó a otra variable (Edad2) el valor de Edad (el cual contenía 23), por lo que obviamente Edad2 termina valiendo 23, pero que pasaría si a Edad no se le hubiera asignado nada antes?



En este caso, la variable Edad vale lo que se conoce como BASURA, es decir, cualquier valor no controlado en el algoritmo.
DEFINICIÓN - BASURA: Cuando se hace uso de una variable, se debe ver si se le ha asignado un valor antes de usarla, ya que de lo contrario contiene lo que se denomina BASURA. La basura simplemente aparece cuando a una variable se le asigna espacio en la memoria del ordenador. Dicho espacio no está en blanco ya que como los datos internamente en el ordenador se manejan en forma binaria hay una cantidad determinada de unos y ceros en ese espacio (Estados aleatorios que se crean cada vez que se enciende el ordenador). Si no se asigna a dicha variable un valor y simplemente se utiliza en una operación aritmética o una asignación, el valor de la variable dependerá de los unos y ceros que había cuando se le asignó el espacio, es decir, no se sabrá con seguridad cual es el valor de esa variable en ese momento, por lo que podría producir graves errores en las siguientes instrucciones del algoritmo.

EJEMPLO EN DFD:

Para implementar el ejemplo anterior en DFD, ejecutamos el programa DFD.EXE e inmediatamente aparecerá un "algoritmo" con las etiquetas de inicio y final, pero sin instrucciones intermedias.
En la parte superior izquierda se verá un menú con botones los cuales tienen los simbolos para los diferentes tipos de instrucciones en un algoritmo.
Para asignación se elige el rectángulo:



Luego se coloca el cursor del MOUSE sobre la posición en la cual se va a colocar la instrucción de asignación (en este caso, entre las etiquetas de inicio y fin) hasta que aparezca el dibujo de una "mano".



Se hace click e inmediatamente aparece el rectángulo de asignación.
Ahora, para colocar las variable se hace doble click sobre el nuevo rectángulo y voalá, ya podemos colocar las variables y los valores a asigarles.



En el programa DFD, se hace un pequeño control a las variables que contengan BASURA.
Esto se puede apreciar ya que si implementamos el ejemplo en el que a "Edad" no se le asignaba ningun valor, sale un error como el siguiente:



NOTA: Para verificar si un algoritmo está correcto se presion el botón de EJECUTAR.



LOS OPERADORES

Los operadores son los que permiten efectuar las operaciones aritméticas en el algoritmo.
Los operadores básicos que se van a usar en este tutorial son los siguientes:

+ , - , * , / : Suma, resta, multiplicación y división respectivamente.

Son las mismas operaciones que en el cálculo normal con una pequeña diferencia: El resultado de estas operaciones puede ser un numero entero o un fraccionario, por lo que se deberá especificar cual es el resultado que se desea. Para esto se debe colocar en la DOCUMENTACIÓN DEL ALGORITMO (que veremos más adelante) que la variable no SOPORTA FRACCIONES (entero), ya que por defecto, todas las variables númericas podrán ser fracciones.
Lastimosamente, en DFD no podemos especificar cuando deseamos que una variable no posea fracciones ya que todas las variable numericas son "reales".

También vamos a usar operadores más complejos como son:

MOD: Dá el residuo de dividir un número entre otro sin DECIMALES.
Ejemplos:
10 MOD 3 = 1. ya que el 3 está en el 10 3 veces y 3*3=9 por lo que el residuo es 1.
10 MOD 4 = 2. ya que el 4 está en el 10 2 veces y 4*2=8 por lo que el residuo es 2.

^: Potenciación.
Ejemplo: 10 ^ 3 = 1000.

EJEMPLO EN DFD:


En el ejemplo anterior, la variable "res" terminará valiendo 1.5, pero si se especifica que es una variable que no soporta fracciones (cosa que no se permite en el programa DFD), su valor será 1 (Se le quita la parte decimal).

IMPORTANTISIMO: Las operaciones en un ordenador tienen un cierto orden de importancia, es decir, algunas se efectúan primero que otras. Este orden en forma descendente es:

Potenciación, modulo, división, multiplicación, suma y resta.

Si no se coloca ningún paréntesis en la operación aritmética, el orden anterior es el que tiene la máquina para realizar las operaciones, pero al colocar algo entre paréntesis, esa parte de operación primará sobre las demás.

EJEMPLO EN DFD:



 En este caso "n1" valdrá 8 ya que la división prima sobre la suma por lo que primero se resuelve 10/2 (5) y luego se suma el 3.
En cambio, para n2 el paréntesis hace que la operación interna prime sobre las demás, por lo que el resultado sería 13/2 , o sea 6.5 !!!

Nota: Obsérvese que según se coloquen o no paréntesis en las distintas operaciones aritméticas los resultados cambian, por lo que en el momento de escribir una operación en un algoritmo, se debe tener muy en cuenta la primacía de los operadores.

A parte de los operadores matematicos, tambien existen los llamados operadores lógicos.

Operadores lógicos: ( >,<,<=,>=,=,!=,<>,AND,OR,NOT): Sirven para hacer preguntas lógicas, como si una variable es mayor que otra, igual, menor o igual, diferente, etc.
Retornan lo que se conoce como un valor de verdad, (TRUE o FALSE), (VERDADERO o FALSO).

En DFD el valor de FALSO se representa como .F. y VERDADERO como .V.

El operador "diferente de", se podrá especificar con ' != ' o con ' < > ' , según el programador lo elija.
Los operadores AND,OR,NOT se usan para ligar operadores logicos.

    * AND indica que las dos condiciones deben ser verdaderas para que el resultado sea verdadero.
    * OR indica que solo una de las dos condiciones debe ser verdadera para que la respuesta sea verdadera.
    * NOT indica que la condicion debe ser falsa para que la respuesta sea verdadera.

Aquí se puede visualizar más facilmente el uso de estos operadores:



 v1 valdrá .F. ya que n1 no es mayor que n2.

v2 valdrá .F. ya que n1 si es diferete de 1, pero nom no es igual a 'pedro' (las variables son Case Sensitive) y el operador AND obliga a que las dos condiciones sean VERDADERAS.

v3 valdrá .F. ya que n1 si es diferete de n2, por lo que al negarlo dá FALSO.

CARACTERÍSTICAS DE UN ALGORITMO

Hasta el momento, no se ha escrito ningún algoritmo "real" en este texto; lo que se ha hecho es escribir segmentos de posibles algoritmos para dar algunos ejemplos.

Un verdadero algoritmo debe tener las siguientes características:

   1. Debe tener un numero finito de instrucciones, o sea un principio y un final, por lo que se deben señalar dentro del algoritmo donde comienza y donde termina.
      Para esto usamos las etiquetas de INICIO y FIN.
   2. Puede tener o no datos de entrada, es decir, datos iniciales que se necesitan conocer para que el modelo que el algoritmo representa funcione.

      Por lo tanto se necesita un mecanismo para leer esos datos desde los dispositivos de entrada del ordenador.

      Para esto utilizaremos el siguiente simbolo:



 en el cual simplemente se colocan los nombres de las variables que deseamos que digite el usuario desde el teclado separados por comas (,).

Ejemplo:



En este ejemplo, en la pantalla del ordenador saldría:



 El mensaje de entrada de datos es un detalle que se coloca al momento de implemetar el algoritmo en un lenguaje de programación.

Este ejemplo todavía no se puede catalogar como un algoritmo, ya que todavía le falta cumplir con otra característica de los algoritmos.

   1. Debe tener al menos uno o más datos de salida, que en forma practica sería el resultado al modelo que fue diseñado por el programador y que por obvias razones deben ser mostrados mediante algún dispositivo de salida del ordenador.

      Para esto se utilizará el siguiete simbolo:



en el cual simplemente se colocan los nombres de las variables que deseamos mostrar en la pantalla separados por comas (,).
Además, aqui podemos colocar los mensajes al usuario directamente para que él sepa lo que se está mostrando en la pantalla. Para esto, se coloca el mensaje como otra variable (separado por comas), pero entre comillas simples ya que es ua variable de tipo caracter.
Retomando el ejemplo anterior, el algoritmo finalmente quedaría:



En el ejemplo anterior, en la pantalla del ordenador saldría:



Ya hemos visto las partes básicas de un algoritmo, ahora pasaremos a diseñar algoritmos con instrucciones especiales (ciclos, decisiones, etc.), desde los más simples hasta los más complejos.

PASOS PARA DISEÑAR UN ALGORITMO.

Aunque no hay un método general para diseñar algoritmos, si se puede decir que lo más adecuado es seguir con los siguientes pasos al tratar de resolver un problema determinado:

   1. EL ANÁLISIS: Es importantisimo hacer un buen análisis de cual es específicamente el problema a resolver. Para esto es bueno ayudarse mediante gráficos del problema o en caso de que no sea graficable, también se puede resolver el problema para casos específicos y luego generalizarlo para todos los posibles casos.

      También se deben observar cuales serían los casos especiales, es decir, aquellos casos que no cumplan la norma general, y tratar de evaluarlos de otra forma.

      Este paso es el que más tiempo debe llevarle a un buen programador, ya que de un buen análisis depende los buenos resultados que arroje el algoritmo.
   2. ESCRIBIR EL ALGORITMO: Después de haber analizado el problema en una forma abstracta, se debe llevar al papel, mediante instrucciones adecuadas al análisis.

      Si el problema fue bien analizado, este paso es muy rápido a comparación del anterior.
   3. PRUEBA DE ESCRITORIO: Este paso es opcional y se aplica siguiendo paso por paso las instrucciones del algoritmo, anotando los diferentes valores que van tomando las variables, de forma que se pueda verificar si hay errores en alguna instrucción.

      Obviamente, éste método es muy engorroso para algoritmos muy extensos, por lo que en estos casos no sería aplicable.


You are not allowed to view links. Register or Login
Visita la corp.
You are not allowed to view links. Register or Login
----------------------------------
You are not allowed to view links. Register or Login

Desconectado dylionA

  • Leecher
  • *
  • Mensajes: 1
Re: DFD creador de diagramas de flujo !!!!
« Respuesta #1 : 28/03/2010, 10:40:43 pm »
EL LINK YTA CADUCO ME PODRIAS PONER UNO Q SIRVA X FAVOR GRACIAS BYE

Desconectado DarkClown-2

  • Recien llegado
  • *
  • Mensajes: 23
Re: DFD creador de diagramas de flujo !!!!
« Respuesta #2 : 28/03/2010, 10:59:50 pm »
Yo tambien lo quiciera porfavor

Desconectado Tuxlud

  • Moderadores
  • User Infernal
  • *****
  • Mensajes: 753
Re: DFD creador de diagramas de flujo !!!!
« Respuesta #3 : 28/03/2010, 11:57:40 pm »
You are not allowed to view links. Register or Login
EL LINK YTA CADUCO ME PODRIAS PONER UNO Q SIRVA X FAVOR GRACIAS BYE
You are not allowed to view links. Register or Login
Yo tambien lo quiciera porfavor
muchachos este es un post ya muy viejo, no revivan post antiguos, googleen y encontraran unos mejores  ;) ;) ;)


Desconectado BLASTER

  • Moderadores
  • User Infernal
  • *****
  • Mensajes: 480
  • Coito Ergo Sum
Re: DFD creador de diagramas de flujo !!!!
« Respuesta #4 : 29/03/2010, 08:13:12 am »
 muchachos este es un post ya muy viejo, no revivan post antiguos, googleen y encontraran unos mejores  ;) ;) ;)
[/quote]
es cierto tux pero igual si quieren aca esta ::)
You are not allowed to view links. Register or Login
NO CLIQUEES LA CARITA
You are not allowed to view links. Register or Login