viernes, 13 de marzo de 2009

Algoritmos-Historia

PRESENTACION

Los algoritmos, como procedimiento para solucionar problemas, han existido desde muchos siglos atrás, sin embargo, se han convertido en tema de interés de estudiante y profesionales por cuanto son el fundamento de la programación de computadores.

Desarrollar un programa de computador significa: indicarle al computador, en un lenguaje que él pueda entender, todos y cada uno de los pasos que debe ejecutar para lograr el objetivopropuesto, pero antes de pensar en decirle al computador cómo hacer algo, es necesario que el programador sepa cómo hacerlo. Es allí donde entra a jugar un papel preponderante el desarrollo de algoritmos, pues antes de escribir un programa es necesario diseñar el algoritmo para solucionar el problema en cuestión.

Existen varias técnicas para representar algoritmos, las más conocidas son: pseudocódigo, diagrama de flujo y diagrama N-S. En este documento se desarrolla la metodología de diagramas N-S o también conocida como diagramas de Chapin.


ALGORITMO


Se sabe que la palabra algoritmo se dio en honor del matemático persa del siglo IX, Khowârizmî. Con éste término se hace referencia a un conjunto de reglas, ordenadas de forma lógica, para desarrollar un cálculo o para solucionar un problema, ya sea de forma manual o utilizando una máquina. Actualmente es frecuente hablar de algoritmo como paso previo al desarrollo de un programa de computador.

Los algoritmos están, con mayor o menor complejidad, en todas las actividades desarrolladas por el hombre y han sido utilizados por todos, infinidad de veces, sin embargo, cuando se aborda el tema como parte de la educación formal se mitifica y se difunde el prejuiciosobre que es un tema complicado.

Desde los primeros años de escolaridad se trabaja con algoritmos, en especial en el campo de las matematicas. Los métodos utilizados para sumar, restar, multiplicar y dividir son algoritmos que cumplen perfectamente las características de precisión, finitud, definición y eficiencia.

Para que la solución de un problema sea llevada hasta un lenguaje de programación, los pasos expresados en el algoritmo deben ser lo más detallados posible, de manera que cada uno de ellos implique una operación trivial; es decir, que los pasos no impliquen procesos que requieran de una solución algorítmica. En caso de presentarse esta situación, el algoritmo debe ser refinado, lo que equivale a desarrollar nuevamente el algoritmo para la tarea concreta a la que se hace mención.

Si el problema que se desea solucionar es muy grande o complejo, es recomendable dividirlo en tareas que se puedan abordar independientemente y que resulten más sencillas de solucionar. A esto se le llama diseño modular.