Introducción a Los
Algoritmos
Los algoritmos conforman
un conjunto de pasos que permiten llegar a la solución del problema. Son por
naturaleza secuenciales, aunque varias técnicas y herramientas aplicables a
ellos ofrecen mecanismos de repetición. Son herramientas que tomamos prestadas
de las matemáticas para poder dar soluciones computacionales a problemas
cotidianos. En la practica la solución de un problema no está compuesta por
uno, sino por muchos algoritmos, cada uno encargado de resolver una porción del
problema planteado.
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.
Características
que Definen a Los Algoritmos
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.
Robustez: Un algoritmo debe cubrir
todos los casos posibles de acuerdo a las alternativas de selección. Debe
funcionar para todos los casos esperados y no esperados.
Determinados: Los algoritmos tienen un
inicio o fin determinados. No son infinitos.
Como
Expresar Algoritmos
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.
Diagramas
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.
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.
Pseudocódigo:
El
pseudocódigo (falso lenguaje, el prefijo pseudo significa falso)
es una descripción de alto nivel de un algoritmo que emplea una mezcla de
lenguaje natural con algunas convenciones sintácticas propias de lenguajes de
programación, como asignaciones, ciclos y condicionales, aunque no está regido
por ningún estándar. Es utilizado para describir algoritmos en libros y
publicaciones científicas, y como producto intermedio durante el desarrollo de
un algoritmo, como los diagramas de flujo,
aunque presentan una ventaja importante sobre estos, y es que los algoritmos
descritos en pseudocódigo requieren menos espacio para representar
instrucciones complejas.
El
pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios
en una implementación. Programadores diferentes suelen utilizar convenciones
distintas, que pueden estar basadas en la sintaxis de lenguajes de programación
concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin
necesidad de conocer o utilizar un entorno de programación específico, y es a
la vez suficientemente estructurado para que su implementación se pueda hacer
directamente a partir de él.
Así
el pseudodocódigo cumple con las funciones antes mencionadas para representar
algo abstracto los protocolos son los lenguajes para la programación. Busque
fuentes más precisas para tener mayor comprensión del tema
Fases de Desarrollo de un Algoritmo
Análisis:
es tomar el problema y construir los pasos.
Programación:
es realizar el algoritmo con la información del análisis.
Codificación:
es generar el código fuente tomando el algoritmo como base.
Edición:
se genera el programa fuente en un lenguaje de programación.
Compilación:
se genera el programa objeto (escrito en lenguaje binario, lenguaje de maquina)
Enlace:
se establece una relación entre el programa objeto con otras aplicaciones
adicionales.
Prueba:
se maneja la aplicación y se revisa si existen errores que incumplan con la
robustez y eficiencia del programa.
No hay comentarios:
Publicar un comentario