Importancia de los Algoritmos

Cuando realizamos un programa de computadora, no podemos empezar a escribir sentencias (órdenes, instrucciones) sin más. Antes, tenemos que planificar (y más concienzudamente cuanto mayor y más difícil sea el programa que queremos construir) qué es lo que va a hacer exactamente el programa y cómo va a hacerlo, y luego traducir este algoritmo a instrucciones.

Definimos un algoritmo como una secuencia finita y estructurada de órdenes que constituyen las instrucciones para una computadora u otra máquina análoga con capacidad de procesamiento (como un smartphone).

El algoritmo no es el programa en sí, sino más bien este último es la concreción del algoritmo en un lenguaje que la máquina que debe ejecutarlo pueda entenderlo.

Y aquí, una pequeña aclaración: los algoritmos son generalmente implementados en las computadoras mediante lenguajes de programación de alto nivel, que no son directamente ejecutables, pero que sí son “compilables” (un proceso que genera un software que la computadora puede entender y ejecutar).

Este lenguaje de programación de alto nivel es un punto intermedio entre algo comprensible para un humano de a pie (aunque requiere ciertos conocimientos técnicos) y lo que puede entender y ejecutar directamente una computadora.

Si buscamos una definición enciclopédica, los algoritmos son tan viejos como las primeras instrucciones plasmadas para llevar a cabo una tarea.

Pongamos un ejemplo: ordeñar una vaca. primero tranquilice al animal. Luego ponga un recipiente bajo las ubres. Seguidamente, siéntese mirando a las ubres de la vaca. Ponga sus manos alrededor de dos de las cuatro ubres del animal y oprima ligeramente la base la cada una de las ubres. Repita el movimiento hasta que de las ubres no quede leche. Ahora haga lo mismo con las dos ubres restantes hasta que también estén vacías. Retire el recipiente lleno de leche. Ha acabado.

Repasemos: tenemos un conjunto de instrucciones concretas y que acaban en un punto determinado. Tenemos un algoritmo para ordeñar vacas.

En todos los algoritmos encontramos elementos que se repiten, como bucles (repetir el movimiento), toma de decisiones (¿está la ubre vacía? No -> continuar ordeñando; si -> pasar a las otras dos o finalizar), y acciones.

Estos elementos, bucles, condiciones, saltos y acciones, tienen sus correspondencias en las estructuras de los lenguajes de programación, aunque estos disponen de mayor número de estructuras para poder hacer frente a la resolución de los problemas concretos que se presentan.

El algoritmo es una abstracción de la resolución de un problema, que al implementarse en un lenguaje de programación necesita de unas estructuras más complicadas.

Este es el caso de las funciones, que realizan una tarea determinada y que se pueden llamar desde diferentes partes del programa.

Existen diferentes formas de expresar algoritmos.

La más intuitiva es la del lenguaje natural, como en el caso del ordeñamiento de una vaca que he explicado antes. Simplemente nos basta describir de una forma concisa las instrucciones para llevar a cabo una tarea. Sin embargo no es una forma estandarizada, solamente funciona para uno mismo o entre un grupo muy reducido de personas, y para tareas realmente simples.

Si buscamos algo reglado y estandarizado tenemos los diagramas de flujo, una forma gráfica muy visual que representa las principales acciones y decisiones que se toman en la ejecución del algoritmo.

El pseudocódigo en una representación formal en texto mucho más parecida a un lenguaje de programación, que dispone de los elementos de este y que es fácilmente trasladable a un código compilable.

Fotolia: doyata - hanss

 

Relacionado

Comentarios


Los comentarios deben expresar una opinión del tema, aportando valor, o de lo contrario se borrará. Gracias.
 

Recomendamos