Algoritmo

4,588 views

Published on

algoritmo... y diagrama de flujo

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,588
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Algoritmo

  1. 1. ALGORITMO
  2. 2.  En matemáticas, ciencias de la computación y disciplinasrelacionadas, un algoritmo (del griego y latín, dixit algorithmus y este asu vez del matemático persa Al-Juarismi[1] ) es un conjunto preescrito deinstrucciones o reglas bien definidas, ordenadas y finitas que permiterealizar una actividad mediante pasos sucesivos que no generen dudas aquien deba realizar dicha actividad.[2] Dados un estado inicial y unaentrada, siguiendo los pasos sucesivos se llega a un estado final y seobtiene una solución. Los algoritmos son el objeto de estudio de laalgoritmia.[1]
  3. 3.  En la vida cotidiana, se emplean algoritmos frecuentemente pararesolver problemas. Algunos ejemplos son los manuales de usuario,que muestran algoritmos para usar un aparato, o las instruccionesque recibe un trabajador por parte de su patrón. Algunos ejemplosen matemática son el algoritmo de la división para calcular elcociente de dos números, el algoritmo de Euclides para obtener elmáximo común divisor de dos enteros positivos, o el método deGauss para resolver un sistema lineal de ecuaciones.
  4. 4. DEFINICIÓN FORMAL En general, no existe ningún consenso definitivo en cuanto a la definición formalde algoritmo. Muchos autores los señalan como listas de instrucciones para resolverun problema abstracto, es decir, que un número finito de pasos convierten los datos deun problema (entrada) en una solución (salida).[1] [2] [3] [4] [5] [6] Sin embargo cabe notarque algunos algoritmos no necesariamente tienen que terminar o resolver un problemaen particular. Por ejemplo, una versión modificada de la criba de Eratóstenes quenunca termine de calcular números primos no deja de ser un algoritmo.[7] A lo largo de la historia varios autores han tratado de definir formalmente a losalgoritmos utilizando modelos matemáticos como máquinas de Turing entre otros.[8][9] Sin embargo, estos modelos están sujetos a un tipo particular de datos como sonnúmeros, símbolos o gráficas mientras que, en general, los algoritmos funcionan sobreuna vasta cantidad de estructuras de datos.[3] [1] En general, la parte común en todaslas definiciones se puede resumir en las siguientes tres propiedades siempre y cuandono consideremos algoritmos paralelos:[7]
  5. 5.  Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –pasoa paso–, definiendo así una secuencia de estados "computacionales" porcada entrada válida (la entrada son los datos que se le suministran alalgoritmo antes de comenzar).Estado abstracto. Cada estado computacionalpuede ser descrito formalmente utilizando una estructura de primer orden ycada algoritmo es independiente de su implementación (los algoritmos sonobjetos abstractos) de manera que en un algoritmo las estructuras de primerorden son invariantes bajo isomorfismo.Exploración acotada. La transiciónde un estado al siguiente queda completamente determinada por unadescripción fija y finita; es decir, entre cada estado y el siguiente solamentese puede tomar en cuenta una cantidad fija y limitada de términos del estadoactual.
  6. 6.  En resumen, un algoritmo es cualquier cosa que funcione paso a paso,donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a unacomputadora en particular, y además tiene un límite fijo en cuanto a la cantidadde datos que se pueden leer/escribir en un solo paso. Esta amplia definiciónabarca tanto a algoritmos prácticos como aquellos que solo funcionan en teoría,por ejemplo el método de Newton y la eliminación de Gauss-Jordan funcionan,al menos en principio, con números de precisión infinita; sin embargo no esposible programar la precisión infinita en una computadora, y no por ello dejande ser algoritmos.[10] En particular es posible considerar una cuarta propiedadque puede ser usada para validar la tesis de Church-Turing de que toda funcióncalculable se puede programar en una máquina de Turing (o equivalentemente,en un lenguaje de programación suficientemente general):[
  7. 7. MEDIOS DE EXPRESIÓN DE UN ALGORITMO Los algoritmos pueden ser expresados de muchas maneras,incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo ylenguajes de programación entre otros. Las descripciones en lenguajenatural tienden a ser ambiguas y extensas. El usar pseudocódigo ydiagramas de flujo evita muchas ambigüedades del lenguaje natural.Dichas expresiones son formas más estructuradas para representaralgoritmos; no obstante, se mantienen independientes de un lenguajede programación específico. La descripción de un algoritmo usualmente se hace en tres niveles:
  8. 8.  Descripción de alto nivel. Se establece el problema, seselecciona un modelo matemático y se explica el algoritmo demanera verbal, posiblemente con ilustraciones y omitiendodetalles. Descripción formal. Se usa pseudocódigo para describir lasecuencia de pasos que encuentran la solución. Implementación. Se muestra el algoritmo expresado en unlenguaje de programación específico o algún objeto capaz dellevar a cabo instrucciones.
  9. 9.  Un algoritmo es un conjunto finito de instrucciones o pasos que sirven paraejecutar una tarea o resolver un problema. En la vida cotidiana empleamosalgoritmos en multitud de ocasiones para resolver diversos problemas como porejemplo para poner una lavadora (conjunto de instrucciones pegadas en la tapa dela máquina), para tocar música (partituras), para construir un aeroplano a escala(expresados en las instrucciones), para hacer trucos de magia (pasos para hacer eltruco) o, incluso, para hacer recetas de cocina (pasos de la receta). Otrosejemplos, como el algoritmo de la división para calcular el cociente de dosnúmeros o el algoritmo de Euclides para calcular el máximo común divisor de dosenteros positivos pertenecen al ámbito de las matemáticas.
  10. 10.  De un modo más formal, un algoritmo es una secuencia finita deinstrucciones realizables, no ambiguas, cuya ejecución conduce a una resoluciónde un problema. Otra definición de algoritmo es la siguiente: Un algoritmo es una metodologiapara resolver un problemas mediante una serie de fases o etapas precisas,definidas y finitas. El algoritmo nos da la solución genérica a un problema y lo podremos empleartodas las veces que se nos presente ese mismo problema: por ejemplo el algoritmode la división es genérico e independiente de los números que tengamos quedividir.
  11. 11.  Una vez descubierto un algoritmo para efectuar una tarea, la realización deésta ya no requiere entender los principios en que se basa dicho algoritmo, pues elproceso se reduce a seguir las instrucciones del mismo. Por ejemplo, podemoshacer una división siguiendo el algoritmo sin entender por qué funciona elalgoritmo. La inteligencia requerida para llevar a cabo la tarea está codificada enel algoritmo. Las máquinas algorítmicas son aquellas capaces de llevar a cabo algoritmos, yentre ellas están los ordenadores. En el ámbito de los ordenadores, los algoritmosse expresan como programas. Los programas son
  12. 12.  algoritmos codificados con un lenguaje no ambiguo cuya sintaxis ysemántica "entiende" el ordenador. . Hay muchos lenguajes deprogramación de ordenadores, entre ellos, Fortran, PASCAL, C... Así pues, si queremos que un ordenador efectúe una tarea, primerodebemos descubrir un algoritmo para llevarla a cabo; programar el algoritmoen la máquina consiste en representar ese algoritmo de modo que se puedacomunicar a una máquina. En otras palabras, debemos transformar elalgoritmo conceptual en un conjunto de instrucciones y representar estasúltimas en un lenguaje sin ambigüedad.
  13. 13.  Gracias a la capacidad para comunicar nuestros pensamientos mediantealgoritmos, podemos construir máquinas cuyo comportamiento simulainteligencia. El nivel de inteligencia que simula la máquina, estará limitado por lainteligencia que podamos comunicarle por medio de algoritmos. Las máquinassólo pueden realizar tareas algorítmicas. Si encontramos un algoritmo para dirigirla ejecución de una tarea, podemos construir una máquina para llevarla a cabosiempre que la tecnología haya avanzado lo suficiente. Si no encontramos unalgoritmo, es posible que la ejecución esté fuera de las capacidades de lasmáquinas. Un computador es todo aparato o máquina destinada a procesarinformación, entendiéndose por proceso, las sucesivas fases, manipulaciones otransformaciones que sufre la información para resolver un problemadeterminado, siguiendo las instrucciones de un programa registrado.
  14. 14. DIAGRAMADE FLUJO
  15. 15. DIAGRAMA DE FLUJO El diagrama de flujo es la representación gráfica del algoritmo oproceso. Se utiliza en disciplinas como la programación, laeconomía, los procesos industriales y la psicología cognitiva. Estosdiagramas utilizan símbolos con significados bien definidos querepresentan los pasos del algoritmo, y representan el flujo deejecución mediante flechas que conectan los puntos de inicio y de finde proceso.
  16. 16. CARACTERÍSTICAS Un diagrama de flujo siempre tiene un único punto de inicio yun único punto de término. Las siguientes son acciones previas a la realización del diagramade flujo: Identificar las ideas principales a ser incluidas en el diagrama deflujo. Deben estar presentes el dueño o responsable del proceso, losdueños o responsables del proceso anterior y posterior y de otrosprocesos interrelacionados, otras partes interesadas. Definir qué se espera obtener del diagrama de flujo. Identificar quién lo empleará y cómo. Establecer el nivel de detalle requerido. Determinar los límites del proceso a describir.
  17. 17.  Los pasos a seguir para construir el diagrama de flujo son: Establecer el alcance del proceso a describir. De esta manera quedará fijado elcomienzo y el final del diagrama. Frecuentemente el comienzo es la salida delproceso previo y el final la entrada al proceso siguiente. Identificar y listar las principales actividades/subprocesos que están incluidosen el proceso a describir y su orden cronológico. Si el nivel de detalle definido incluye actividades menores, listarlas también. Identificar y listar los puntos de decisión. Construir el diagrama respetando la secuencia cronológica y asignando loscorrespondientes símbolos. Asignar un título al diagrama y verificar que esté completo y describa conexactitud el proceso elegido.
  18. 18. VENTAJAS DE LOS DIAGRAMAS DE FLUJO Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebrohumano reconoce muy fácilmente los dibujos. Un buen diagrama de flujoreemplaza varias páginas de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso.Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad,las responsabilidades, los cuellos de botella, y los puntos de decisión. Muestran las interfaces cliente-proveedor y las transacciones que en ellas serealizan, facilitando a los empleados el análisis de las mismas. Son una excelente herramienta para capacitar a los nuevos empleados ytambién a los que desarrollan la tarea, cuando se realizan mejoras en el proceso. Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis dealgoritmos de programación puede ser ejecutado en un ordenador, con un Idecomo Free DFD.
  19. 19. TIPOS DE DIAGRAMAS DE FLUJO Formato vertical: En él, el flujo o 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 seconsidere necesaria, según su propósito. Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda aderecha. Formato panorámico: El proceso entero está representado en una sola carta y puedeapreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita sucomprensión, aún para personas no familiarizadas. Registra no solo en línea vertical, sinotambién horizontal, distintas acciones simultáneas y la participación de más de un puesto odepartamento que el formato vertical no registra. Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre elplano arquitectónico del área de trabajo. El primero de los flujogramas es eminentementedescriptivo, mientras que los utilizados son fundamentalmente representativos
  20. 20. SIMBOLOGÍA Y SIGNIFICADO Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama). Rectángulo: Actividad (Representa la ejecución de una o másactividades o procedimientos). Rombo: Decisión (Formula una pregunta o cuestión). Círculo: Conector (Representa el enlace de actividades con otradentro de un procedimiento). Triángulo boca abajo: Archivo definitivo (Guarda un documentoen forma permanente). Triángulo boca arriba: Archivo temporal (Proporciona un tiempopara el almacenamiento del documento).
  21. 21.  Es una representación gráfica que muestra todas lasactividades de un proceso; permite ver la relación y la secuencialógica entre los pasos y actividades del proceso. El diagrama deflujo representa la forma más tradicional y duradera paraespecificar los detalles algorítmicos de un proceso.Se utilizaprincipalmente en programación , economía y procesosindustriales.
  22. 22.  Es un esquema para representar gráficamente un algoritmo. Sebasan enla utilización de diversos símbolos para representar operaciones específicas,es decir, es la representación grafica de las distintas operaciones que setienen que realizar para resolver un problema, con indicación expresa elorden lógico en que deben realizarse.  Los diagramas de flujo nos ayudan a descubrir vacíos que son causaspotenciales de problemas.  Sólo nos permite identificar el problema más no analizar sus causas.
  23. 23.  Los diagramas de flujo son importantes porque nos facilitala manera derepresentar visualmente el flujo de datos por mediode un sistema detratamiento deinformación, en este realizamosunanálisis de los procesos oprocedimientosque requerimos pararealizar un programa o unobjetivo.
  24. 24. PASO 1: ESTABLECER QUIÉNES DEBEN PARTICIPAR EN SU CONSTRUCCIÓN El grupo de trabajo, o la persona responsable del estudioidentificará los organismos implicados en el proceso, o partedel mismo, que debe ser analizado .Se invitará a unrepresentante de dichos organismos a participar en laconstrucción del Diagrama de Flujo .El número departicipantes en la sesión de construcción del Diagrama no serásuperior a 10 para que el grupo sea operativo y eficaz.
  25. 25.  Paso 2: Preparar la logística de la sesión de trabajo. Con objeto de que el ritmo de la sesión de trabajo sea eladecuado se debePrever:- Dar la información necesaria a losparticipantes en la reunión sobre el objetode la misma y sobreeste procedimiento.- Preparar superficies y material de escrituraque permitan tener a la vistacontinuamente el trabajodesarrollado.DESARROLLO DE LA CONSTRUCCION
  26. 26.  Paso 3: Definir claramente la utilización del Diagrama de Flujo yel resultado que se espera obtener de la sesión de trabajo. a) En primer lugar, es necesario clarificar el objetivo de laconstrucción del Diagrama de Flujo y escribirlo de forma que seavisible para los participantes durante toda la sesión .b) Estaclarificación permitirá definir el grado de detalle y la estructura quese requieren en el diagrama para poder alcanzar dicho objetivo.

×