Es una representación gráfica del "flujo" de datos a través de un sistema de información. Un diagrama de flujo de datos también se puede utilizar para la visualización de procesamiento de datos (diseño estructurado). Es una práctica común para un diseñador dibujar un contexto a nivel de DFD que primero muestra la interacción entre el sistema y las entidades externas.
ALGORITMO:
La notación "algoritmo" es fundamentalmente en la programación de los computadores, por tal motivo vale la pena dar una definición precisa. La entrada en un diccionario es: "cualquier procedimiento mecánico o computacional", la cual no nos satisface completamente debido a que estos términos no son lo suficientemente atómicos (simples e indivisibles)
Definición
Un algoritmo es una secuencia ordenada y finita de instrucciones lógicas bien definidas que de seguirse permite la realización de una tarea en particular.
Todo Algoritmo Debe Cumplir Las Siguientes Condiciones:
1.ENTRADAS: cero o más cantidades que se proporcionan externamente
2.SALIDAS: por lo menos una cantidad se produce.
3.DEFINITUD: cada instrucción debe ser clara e inequívoca.
4.FINITUD: si recorremos las instrucciones de un algoritmo, para todos los casos el algoritmo terminara después de un número finito de pasos.
5.EFECTIVIDAD: cada instrucción debe ser lo suficientemente básica que en principio pueda realizarse por una persona usando solo papel y lápiz.
6.EXCTITUD: siempre que el algoritmo se corra con las mismas entradas deberá producir la misma salida.
LENGUAJE ALGORÍTMICO Y LENGUAJE INFORMÁTICO
El lenguaje algorítmico es aquel promedió del cual al realizar un análisis de una problema por resolver y una vez encontrado un posible método que permite resolverlo, permite representar la solución encontrada. El conjunto de todas las operaciones a realizar, y el orden en que se deben efectuar, se denominan algoritmo.
El lenguaje informático es aquel por medio del cual un algoritmo se codifica en un sistema comprensible por el computador..
Se denomina lenguaje de alto nivel aquel que es mas cercano a la comprensión humana y lenguaje de bajo nivel a aquellos que son comprensibles por la maquina.
OBJETOS EXPRESIONES Y ACCIONES ELEMENTALES
1. ENTORNO. Objetos Básicos
Las características de un objeto del entorno son 3: Nombre, Tipo y Valor.
NOMBRE: Es el identificador que se le da al objeto Ej.: EDAD
TIPO: El tipo nos da una idea del contenido de ese objeto, es decir, la información que va poder contener Ej.: 16
VALOR: Es el contenido en si del objeto, el dato que va a contener. Ej.: 8
VARIABLES: Son objetos en los que pueden modificarse el valor a algo de la ejecución del programa
(Algoritmo). Antes de ejecutarlo hay que definir el nombre y el tipo de las variables a emplear
CONSTANTE: Su valor no varía durante la ejecución del algoritmo. Por ejemplo el número PI: 3.14159 que es el tipo real.
2. TIPOS SIMPLES DE DATOS
-Numérico Entero
Real
-Carácter Letra
Digito
-Lógico O Booleano Verdadero o Falso
2. OPERACIONES Y EXPRECIONES
Una expresión es una serie de operándoos (datos objetos) y operadores (operaciones)
Combinados según unas reglas. Tipos de expresiones que dependen del tipo de operándoos y el resultado:
-expresiones aritméticas
-expresiones lógicas
-expresiones de caracteres.
*Expresiones Aritméticas:
Los operándoos y el resultado son números
Suma +
Resta -
Cambio de signo -
Multiplicación *
División real /
División entera Div
Resto de la división entera MOD
*Expresiones Lógicas
El resultado es de tipo lógico (verdadero o falso). Nos ayudan a saber si se cumplen ciertas condiciones. Existen dos clases de operadores:
-Operadores Racionales
-Operadores Booleanos.
-Los Operadores Racionales Son:
= Igual
<> Diferente
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
-Los operadores booleanos son de tipo lógico; y son: NOT, AND, OR, XOR.
NOT. Cambia el valor del operando al que se le aplique, es decir, si el operando es verdadero y le aplicamos este operador, se convierte en Falso.
AND. Este operando necesita de dos operadores y devuelve verdadero si ambos operadores son varadero o falso en cualquier otro caso
OR. Este operando también necesita de dos operadores, y devuelve falso si ambos operadores son falsos y verdadero en caso contrario, es decir, si uno de los operadores son verdadero, OR aplicado sobre esos dos operadores devolverá a verdadero.
XOR. También es aplicado sobre dos operadores, y devuelve falso si ambos operadores son iguales, y verdadero en caso contrario
OPERADORES ARITMETICOS:
Variables: A(6), B(2), C(3)
A*B div C = 4
A div B*C = 9
A7*B mod C = 0
A+B mod C = 8
A div B div C = 1
OPERADORES BOOLEANOS Y RACIONALES:
Variables: M(5), N(9), A(False), B(True)
M > = N
NOT A = B
M * N < N * N
(A or B) <>B
(M < N) <> (A or B)
(M < 12) or ((A = FALSE) <> B)
TECNICAS PARA LA REPRESENTACION DE ALGORITMOS
Existen varia técnicas para la representación de algoritmos, entre las más utilizadas se encuentran los diagramas de flujo, el seudocódigo y los diagramas estructurados (nassi-schneiderman).
Un DIAGRAMA DE FLUJO es una manera en la cual se utiliza una notación semigráfica, en donde cada paso del proceso se pone en una “caja” y se usan flechas para indicar el siguiente paso, existen cajas de formas diferentes que simbolizan diferentes tipos de operación.
El SEUDOCODIGO, es un lenguaje artificial e informa que ayuda a los programadores en el desarrollo de los algoritmos. Los algoritmos en el seudocodigo no son ejecutados en el computador solo ayudan al programador a “pesar” y a plasmar su solución a la tarea requerida antes de que esta sea escrita en un lenguaje de programación
Un Algoritmo cuidadosamente preparado en el seudocodigo, puede ser convertido con facilidad en un programa (siguiendo adecuadamente la sintaxis del lenguaje a ser utilizado).
El seudocodigo incluye solo enunciados de acción los que serán ejecutados por la maquina una vez el seudocodigo se ha convertido a un lenguaje de programación y desde este ultimo se transforma a un lenguaje comprensible por la maquina.
Los Diagramas Estructurados, son una técnica que permite formular algoritmos mediante una representación geométrica y de asignación de espacios de un bloque específico.
Lo que depende todo algoritmo es sintetizar de alguna forma una tarea, calculo o mecanismo antes de ser trascrito al computador. La creación de todo algoritmo se puede realizar mediante estas etapas:
1. REQUERIMIENTOS: asegúrese de tener la información que nos dan (entradas) y los resultados que debemos producir (salidas), intente extractar una descripción rigurosa de las entradas y salidas las cuales contemplen todos los posibles casos.
2. DISEÑO: usted puede tener varios objetos de datos (como una serie de números, un polinomio, o analista de nombres). Para cada objeto habrá algunas operaciones básicas a realizar (como por ejemplo una impresión de los números, sumas dos polinomios, o encontrar un nombre en una lista, etc.) asuma que estas operaciones ya existen en forma de funciones y escriba un algoritmos que resuelva el problema según los requisitos. Utilice una notación natural de acuerdo con la forma como desea describir el orden de procesamientos.
3. ANÁLISIS: si puede pensar otro algoritmo, entonces anótelo. Luego intente comprobar los 2 algoritmos que tiene, ya que puede ser posible decir si uno es mejor que el otro. Si usted no puede distinguir entre los 2, escoja uno y trabaje con el.
4. REFINAMIENTO Y CODIFICACION: ahora debe escoger representaciones para sus datos (un laberinto como un arreglo bidimensional, un polígono como una serie de coeficientes de grado y coeficientes, una lista de nombres posibles como un arreglo) escriba algoritmos para cada uno de los funcionamientos en estos objetos.
5. VERIFICACIÓN: la comprobación de tres aspectos: el algoritmo demostrando, pruebas y la puesta a punto.
Cada una de estas 5 etapas en si mismo es un arte. Antes de codificar su algoritmo debe probarlo con datos que demuestren que es correcto. Probar es el arte de crear datos se prueba que permitan comprobar la validez de funcionamiento. Si el algoritmo no corre adecuadamente entonces en la puesta a punto se necesita determinar lo que salio mal y como corregirlo.
SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO
La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente.:
*TERMINAL(representa el inicio y el fin de un programa, puede representar también una parada o interrupción programada que sea necesario realizar en un programa).

*ENTRADA/SALIDA (cualquier tipo de introducción de datos).

*PROCESO(cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritmeticas).

*DECISIÓN (indica operaciones lógicas o de comparación entre datos –normalmente dos- y en función de resultado de la misma determina cual de los distintos cambios alternativos del programa se deben seguir).

*DECISIÓN MÚLTIPLE (en función del resultado de la comparación se seguirá uno de los diferentes cambios de acuerdo con dicho resultado).

*CONECTOR (sirve para enlazar dos partes cualquiera de un organigrama a través de un conector en la salida y otro conector en la salida).

*INDICADOR DE DIRECCIÓN O LÍNEA DE FLUJO (indica el sentido de ejecución de las operaciones)

*LÍNEA CONECTORA (sirve de unión entre dos símbolos).

*CONECTOR (conexión entre dos puntos del organigrama situado en páginas diferentes).

*llamada a SUBRUTINA o a un proceso predeterminado (una subrutina es un modulo independiente del programa).

*PANTALLA (se utiliza en ocasiones en lugar del símbolo de E/S).

*IMPRESORA (se utiliza en ocasiones en lugar del símbolo E/S).

*TECLADO (se utiliza en ocasiones en lugar del símbolo E/S).

------------------------------------------------------------------------------
EJEMPLO DE UN DIAGRAMA DE FLUJO QUE DETERMINA SI UN NUMERO ES PAR: