Documente Academic
Documente Profesional
Documente Cultură
Este artículo o sección posee referencias, pero necesita más para complementar
su verificabilidad.
Puedes colaborar agregando referencias a fuentes fiables como se indica aquí. El material sin
fuentes fiables podría ser cuestionado y eliminado.
No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan
pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe
confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser
compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una
alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.
Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso
es representado por un símbolo diferente que contiene una breve descripción de la etapa de
proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que
indican la dirección de flujo del proceso.
El diagrama de flujo ofrece una descripción visual de las actividades implicadas en un
proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de
cada actividad y su relación con las demás, el flujo de la información y los materiales, las
ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las
operaciones de interdepartamentales… Facilita también la selección de indicadores de
proceso
En primer lugar, facilita la obtención de una visión transparente del proceso, mejorando su
comprensión. El conjunto de actividades, relaciones e incidencias de un proceso no es
fácilmente discernible a priori. La diagramación hace posible aprehender ese conjunto e ir
más allá, centrándose en aspectos específicos del mismo, apreciando las interrelaciones
que forman parte del proceso así como las que se dan con otros procesos y subprocesos.
Permiten definir los límites de un proceso. A veces estos límites no son tan evidentes, no
estando definidos los distintos proveedores y clientes (internos y externos) involucrados.
El diagrama de flujo facilita la identificación de los clientes, es más sencillo determinar sus
necesidades y ajustar el proceso hacia la satisfacción de sus necesidades y expectativas.
Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades
que componen el proceso.
El diagrama de flujo debe ser realizado por un equipo de trabajo en el que las distintas
personas aporten, en conjunto, una perspectiva completa del proceso, por lo que con
frecuencia este equipo será multifuncional y multijerárquico.
Algoritmo
Los diagramas de flujo sirven para representar algoritmos de manera gráfica.
Índice
1 Definición formal
2 Medios de expresión de un algoritmo
o 2.1 Diagrama de flujo
o 2.2 Pseudocódigo
o 2.3 Sistemas formales
o 2.4 Implementación
o 2.5 Variables
o 2.6 Estructuras secuenciales
3 Algoritmos como funciones
4 Análisis de algoritmos
5 Ejemplo de algoritmo
o 5.1 Descripción de alto nivel
o 5.2 Descripción formal
o 5.3 Implementación
6 Véase también
o 6.1 Tipos de algoritmos según su función
o 6.2 Técnicas de diseño de algoritmos
o 6.3 Temas relacionados
o 6.4 Disciplinas relacionadas
7 Referencias
8 Bibliografía
9 Enlaces externos
Definición formal
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos
utilizando modelos matemáticos. Esto fue realizado por Alonzo Church en 1936 con el
concepto de "calculabilidad efectiva" basada en su cálculo lambda y por Alan Turing
basándose en la máquina de Turing. Los dos enfoques son equivalentes, en el sentido en
que se pueden resolver exactamente los mismos problemas con ambos enfoques.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
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.
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):10