Algoritmo

30
ALGORITMO

description

algoritmo... y diagrama de flujo

Transcript of Algoritmo

Page 1: Algoritmo

ALGORITMO

Page 2: Algoritmo

En matemáticas, ciencias de la computación y

disciplinas relacionadas, un algoritmo (del griego y

latín, dixit algorithmus y este a su vez del matemático

persa Al-Juarismi[1] ) es un conjunto preescrito 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.[2] 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.[1]

Page 3: Algoritmo

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. Algunos ejemplos en matemática son el algoritmo de

la división para calcular el cociente de dos números, el

algoritmo de Euclides para obtener el máximo común divisor

de dos enteros positivos, o el método de Gauss para resolver

un sistema lineal de ecuaciones.

Page 4: Algoritmo
Page 5: Algoritmo

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).[1] [2] [3] [4] [5] [6] Sin embargo cabe notar que algunos

algoritmos no necesariamente tienen que terminar o resolver un problema

en particular. Por ejemplo, una versión modificada de la

criba de Eratóstenes que nunca 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 los algoritmos 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 son números, símbolos o gráficas mientras que,

en general, los algoritmos funcionan sobre una vasta cantidad de

estructuras de datos.[3] [1] 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:[7]

Page 6: Algoritmo

Tiempo secuencial. Un algoritmo funciona en tiempo

discretizado –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).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.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.

Page 7: Algoritmo
Page 8: Algoritmo

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 una computadora en particular, y además tiene

un límite fijo en cuanto a la cantidad de datos que se pueden

leer/escribir en un solo paso. Esta amplia definición abarca 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 es posible

programar la precisión infinita en una computadora, y no por ello

dejan de ser algoritmos.[10] En particular es posible considerar una

cuarta propiedad que puede ser usada para validar la tesis de

Church-Turing de que toda función calculable se puede programar

en una máquina de Turing (o equivalentemente, en un lenguaje de

programación suficientemente general):[

Page 9: Algoritmo

MEDIOS DE EXPRESIÓN DE UN

ALGORITMOLos 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:

Page 10: Algoritmo

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.

Descripción formal. Se usa pseudocódigo para

describir la secuencia de pasos que encuentran

la solución.

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.

Page 11: Algoritmo

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven

para ejecutar una tarea o resolver un problema. En la vida cotidiana

empleamos algoritmos en multitud de ocasiones para resolver diversos

problemas como por ejemplo para poner una lavadora (conjunto de

instrucciones pegadas en la tapa de la 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 el truco) o,

incluso, para hacer recetas de cocina (pasos de la receta). Otros ejemplos,

como el algoritmo de la división para calcular el cociente de dos números

o el algoritmo de Euclides para calcular el máximo común divisor de dos

enteros positivos pertenecen al ámbito de las matemáticas.

Page 12: Algoritmo

De un modo más formal, un algoritmo es una secuencia finita de

instrucciones realizables, no ambiguas, cuya ejecución conduce a

una resolución de un problema.

Otra definición de algoritmo es la siguiente: Un algoritmo es una

metodologia para 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 emplear todas las veces que se nos presente ese mismo

problema: por ejemplo el algoritmo de la división es genérico e

independiente de los números que tengamos que dividir.

Page 13: Algoritmo

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 el proceso se reduce a seguir las

instrucciones del mismo. Por ejemplo, podemos hacer una división

siguiendo el algoritmo sin entender por qué funciona el algoritmo. La

inteligencia requerida para llevar a cabo la tarea está codificada en el

algoritmo.

Las máquinas algorítmicas son aquellas capaces de llevar a cabo

algoritmos, y entre ellas están los ordenadores. En el ámbito de los

ordenadores, los algoritmos se expresan como programas. Los

programas son

Page 14: Algoritmo

algoritmos codificados con un lenguaje no ambiguo cuya sintaxis

y semántica "entiende" el ordenador. . Hay muchos lenguajes de

programación de ordenadores, entre ellos, Fortran, PASCAL, C...

Así pues, si queremos que un ordenador efectúe una tarea,

primero debemos descubrir un algoritmo para llevarla a cabo;

programar el algoritmo en la máquina consiste en representar ese

algoritmo de modo que se pueda comunicar a una máquina. En

otras palabras, debemos transformar el algoritmo conceptual en un

conjunto de instrucciones y representar estas últimas en un

lenguaje sin ambigüedad.

Page 15: Algoritmo

Gracias a la capacidad para comunicar nuestros pensamientos

mediante algoritmos, podemos construir máquinas cuyo

comportamiento simula inteligencia. El nivel de inteligencia que simula

la máquina, estará limitado por la inteligencia que podamos

comunicarle por medio de algoritmos. Las máquinas sólo pueden

realizar tareas algorítmicas. Si encontramos un algoritmo para dirigir

la ejecución de una tarea, podemos construir una máquina para llevarla

a cabo siempre que la tecnología haya avanzado lo suficiente. Si no

encontramos un algoritmo, es posible que la ejecución esté fuera de las

capacidades de las máquinas. Un computador es todo aparato o

máquina destinada a procesar información, entendiéndose por proceso,

las sucesivas fases, manipulaciones o transformaciones que sufre la

información para resolver un problema determinado, siguiendo las

instrucciones de un programa registrado.

Page 16: Algoritmo

DIAGRAMA DE FLUJO

Page 17: Algoritmo

DIAGRAMA DE FLUJOEl diagrama de flujo es la representación gráfica

del algoritmo o proceso. Se utiliza en disciplinas

como la programación, la economía, los procesos

industriales y la psicología cognitiva. Estos

diagramas utilizan símbolos con significados bien

definidos que representan los pasos del algoritmo, y

representan el flujo de ejecución mediante flechas

que conectan los puntos de inicio y de fin de

proceso.

Page 18: Algoritmo

CARACTERÍSTICASUn diagrama de flujo siempre tiene un único punto de

inicio y un único punto de término.

Las siguientes son acciones previas a la realización del

diagrama de flujo:

Identificar las ideas principales a ser incluidas en el

diagrama de flujo. Deben estar presentes el dueño o

responsable del proceso, los dueños o responsables del

proceso anterior y posterior y de otros procesos

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.

Page 19: Algoritmo

Los pasos a seguir para construir el diagrama de flujo son:

Establecer el alcance del proceso a describir. De esta manera

quedará fijado el comienzo y el final del diagrama.

Frecuentemente el comienzo es la salida del proceso previo y

el final la entrada al proceso siguiente.

Identificar y listar las principales actividades/subprocesos

que están incluidos en 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 los correspondientes símbolos.

Asignar un título al diagrama y verificar que esté completo y

describa con exactitud el proceso elegido.

Page 20: Algoritmo
Page 21: Algoritmo

VENTAJAS DE LOS DIAGRAMAS DE FLUJO

Favorecen la comprensión del proceso al mostrarlo como un dibujo.

El cerebro humano reconoce muy fácilmente los dibujos. Un buen

diagrama de flujo reemplaza 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 se realizan, facilitando a los empleados el análisis de las mismas.

Son una excelente herramienta para capacitar a los nuevos

empleados y tambié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 de algoritmos de programación puede ser ejecutado en un

ordenador, con un Ide como Free DFD.

Page 22: Algoritmo

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 se considere necesaria, según su propósito.

Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de

izquierda a derecha.

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.

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

Page 23: Algoritmo
Page 24: Algoritmo

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ás actividades o procedimientos).

Rombo: Decisión (Formula una pregunta o cuestión).

Círculo: 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).

Page 25: Algoritmo

Es una representación gráfica que muestra

todas las actividades de un proceso; permite ver

la relación y la secuencia lógica entre los pasos

y actividades del proceso. El diagrama de flujo

representa la forma más tradicional y duradera

para especificar los detalles algorítmicos de un

proceso.Se utiliza principalmente en

programación , economía y procesosi

ndustriales.

Page 26: Algoritmo

Es un esquema para representar gráficamente un algoritmo.

Sebasan en la utilización de diversos símbolos para

representar operaciones específicas, es decir, es la

representación grafica de las distintas operaciones que se

tienen que realizar para resolver un problema, con indicación

expresa el orden lógico en que deben realizarse.

Los diagramas de flujo nos ayudan a descubrir vacíos que

son causas potenciales de problemas.

Sólo nos permite identificar el problema más no analizar sus

causas.

Page 27: Algoritmo

Los diagramas de flujo son importantes

porque nos facilita la manera derepresentar

visualmente el flujo de datos por medio de un

sistema detratamiento deinformación, en este

realizamos unanálisis de los procesos o

procedimientosque requerimos para realizar un

programa o unobjetivo.

Page 28: Algoritmo

PASO 1: ESTABLECER QUIÉNES DEBEN

PARTICIPAR EN SU CONSTRUCCIÓN

El grupo de trabajo, o la persona responsable

del estudio identificará los organismos

implicados en el proceso, o parte del mismo,

que debe ser analizado .Se invitará a un

representante de dichos organismos a

participar en la construcción del Diagrama de

Flujo .El número de participantes en la sesión

de construcción del Diagrama no se rásuperior

a 10 para que el grupo sea operativo y eficaz.

Page 29: Algoritmo

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 el adecuado se debePrever:- Dar la

información necesaria a los participantes en la

reunión sobre el objetode la misma y sobre este

procedimiento.- Preparar superficies y material

de escritura que permitan tener a la

vistacontinuamente el trabajo

desarrollado.DESARROLLO DE LA

CONSTRUCCION

Page 30: Algoritmo

Paso 3: Definir claramente la utilización del

Diagrama de Flujo y el resultado que se espera obtener

de la sesión de trabajo.

a) En primer lugar, es necesario clarificar el objetivo

de la construcción del Diagrama de Flujo y escribirlo

de forma que sea visible para los participantes durante

toda la sesión .b) Esta clarificación permitirá definir el

grado de detalle y la estructura que se requieren en el

diagrama para poder alcanzar dicho objetivo.