jueves, 30 de mayo de 2013

CONCEPTOS BASICOS DE ALGORITMOS

Algoritmos 

  • En matemáticaslógicaciencias de la computación y disciplinas relacionadas, un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.
  • Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.
  • En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón.
EJEMPLO:


Archivo: LampFlowchart-es.svg






Definición Formal
  • En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).
  • A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemáticos como máquinas de Turing entre otros. Sin embargo, estos modelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:

  1. TIEMPO SECUENCIAL: Un algoritmo funciona en tiempo concretizado "paso a paso", definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar).
  2. ESTADO ABSTRACTO: Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.
  3. EXPLORACIÓN ACOTADA: La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.





    MEDIOS DE EXPRESIÓN DE UN ALGORITMO

    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
    La descripción de un algoritmo usualmente se hace en tres niveles:
    1. DESCRIPCIÓN DE ALTO NIVEL: Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
    2. DESCRIPCIÓN FORMAL: Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
    3. IMPLEMENTACIÓN: Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.






    DIAGRAMA DE FLUJO

    Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
    Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.
    Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.

                                  EJEMPLO:













    TIPOS DE DIAGRAMA DE FLUJO

    • FORMATO VERTICAL: En él, el flujo y la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.


                                     EJEMPLO:









    • FORMATO HORIZONTAL: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.


                                     EJEMPLO:






    • FORMATO PANORÁMICO:  El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aún para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.


                                     EJEMPLO:








    • FORMATO ARQUITECTÓNICO: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.


                                    EJEMPLO:



    'Diagrama de flujos'








    SÍMBOLOS Y SIGNIFICADOS

    • ÓVALO O ELIPSE: Inicio y término (Abre y/o cierra el diagrama).
    • RECTÁNGULO: Actividad (Representa la ejecución de una o más actividades o procedimientos).
    • ROMBO: Decisión (Formula una pregunta o cuestión).
    • CIRCULO: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).
    • TRIÁNGULO BOCA ABAJO: Archivo definitivo (Guarda un documento en forma permanente).
    • TRIÁNGULO BOCA ARRIBA: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).






    VÍDEOS: