Por Jairon Alberto Francisco 07-0034 Instituto Tecnológico de Santo Domingo INTEC
Cinco definiciones completas - Características
- Ejemplos
- Notaciones
Prefacio El desarrollo de algoritmos es un tema fundamental en el diseño de programas o soluciones. Dicho esto es evidente que por lo regular en los cursos basados en introducir a la programación se lleven a cabo investigaciones de este tipo. Estas investigaciones sobre el tema de los Algoritmos facilita la comprensión del estudiantado en lo que respecta a la base fundamental de la programación. La siguiente documentación pueden servir de apoyo a tutores o profesores, en su labor cotidiana de enseñanza y al estudiante, facilitarle el desarrollo de su capacidad analítica y creadora, para de esta manera mejorar su destreza en la elaboración de algoritmos que sirven como base para la codificación de los diferentes programas que tendrá que desarrollar a lo largo de su carrera. ¿Qué es algoritmo?
1. Algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. 2. Es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema 3. Es un método para encontrar la solución a algún problema. Los algoritmos son el objeto de estudio de la algoritmia y su definición queda formalizada por la Máquina de Turing. 4. Se plantea como el conjunto de procesos y acciones dispuestas a finalizar un propósito. 5. Es el ritmo de composición de la solución de un problema básico. Tipos de algoritmos Existen dos tipos y son llamados así por su naturaleza: 1. Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. 2. Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver problemas matemáticos; al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida ("efecto caja negra"). Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser definido, finito y eficiente. Por eficiente se entiende que las instrucciones encuentran la solución en el menor tiempo posible; finito implica que tiene un determinado número de pasos, es decir, que termina; y definido, que si se sigue el mismo proceso más de una vez se llega siempre al mismo resultado. Características de los algoritmos El científico de computación Donald Knuth, ofreció una lista de cinco propiedades que son ampliamente aceptadas como requisitos para un algoritmo, que resumidas en un punto de vista últimamente desarrollado son: • •
Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones.
•
Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema. Debe ser finito en tamaño y tiempo de ejecución. Diseño del Algoritmo
• •
Knuth admite que, aunque su descripción pueda ser intuitivamente clara, carece de rigor formal, puesto que no está exactamente claro qué significa "precisamente definido", "de manera rigurosa y no ambigua", o "suficientemente básicas", y así sucesivamente Ejemplo: Este es un algoritmo. El fin preciso es comunicarse con una persona. Y a continuación el esquema de pasos en forma algorítmica a ejecutar para conseguir el fin anhelado.
Notaciones Algorítmicas 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:
1. Descripción de alto nivel: Se establece el problema, se selecciona un modelo 2. 3.
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.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
Jairon Francisco 07-0034 INTEC Estudiante de Ingeniería Mecánica