El documento habla sobre los algoritmos. Define un algoritmo como un conjunto de instrucciones ordenadas y finitas para resolver un problema mediante pasos sucesivos. Explica que los algoritmos se usan comúnmente para resolver problemas cotidianos y también en matemáticas. Finalmente, señala que existen diferentes formas de expresar un algoritmo, incluyendo pseudocódigo y lenguajes de programación.
2. 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]
3. 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.
4.
5. 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]
6. 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.
7.
8. 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):[
9. 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:
10. 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.
11. 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.
12. 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.
13. 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
14. 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.
15. 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.
17. DIAGRAMA DE FLUJO
El 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.
18. CARACTERÍSTICAS
Un 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.
19. 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.
20.
21. 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.
22. 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
23.
24. 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).
25. 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.
26. 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.
27. 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 oprocedimientosque requerimos para
realizar un programa o unobjetivo.
28. 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.
29. 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
30. 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.