You are on page 1of 2

2.1.

Concepto de algoritmo y caractersticas


Antes de explicar cmo se realizan los algoritmos en la programacin, conviene tener claridad en el significado de la palabra algoritmo. Esta palabra, proviene del nombre de un matemtico persa, nacido alrededor del 780 d.C. en KhoWrizm, conocido como Mohammad Al-KhoWrizmi. Se le considera el padre de la algoritmia porque defini las reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales. La traduccin al latn de AlKhwrizm es algoritmi, que da origen a la palabra algoritmo (Joyanes & Zohanero, 2005). Formalmente, un algoritmo se define como una secuencia finita de instrucciones precisas y eficaces para resolver un problema, que trabaja a partir de cero o ms datos (entrada) y devuelve un resultado (salida) . Para ilustrar este concepto te presentamos el siguiente escenario ficticio, al que hemos llamado: El mundo de la ardilla. Supongamos que tenemos una ardilla, la cual ha sido entrenada para realizar determinadas funciones o movimientos sobre un tablero o mundo. Hasta el momento, las instrucciones que sabe llevar a cabo son las que se muestran en la siguiente tabla: Lista de Instrucciones que puede ejecutar la ardilla INSTRUCCIN avanza() giraIzquierda() dejaBellota() hayBellota() hayPared() DESCRIPCIN DE LOS MOVIMIENTOS DE LA ARDILLA Se mueve una ubicacin en la direccin actual Voltea a la izquierda Coloca una bellota en la ubicacin actual Responde si hay o no bellotas en la posicin actual Responde si hay o no pared en la ubicacin siguiente La ardilla coloca en su boca una bellota que est en la ubicacin recogeBellota() actual bellotasRecogidas() Dice el nmero de bellotas que tiene en la boca

Los parntesis al final de cada instruccin sirven para identificar que se trata de una orden que puede ejecutar la ardilla. Si observas la lista de instrucciones podrs darte cuenta que, la ardilla no es capaz de voltear a la derecha y mucho menos de responder a rdenes ms complejas como mueve una bellota que se encuentra en la primera casilla del tablero al final del mismo. Sin embargo, podra realizar ambas tareas si se le dan las instrucciones precisas en trminos de las acciones que sabe hacer. Por ejemplo, para que la ardilla gire a la derecha tendramos que ordenarle tres veces que girara a la izquierda, es decir, la secuencia de instrucciones que debe ejecutar es:

giraIzquierda() giraIzquierda() giraIzquierda() Estos pasos constituyen un algoritmo, el cual soluciona el problema de hacer que la ardilla gire a la derecha. Una de las caractersticas principales de los algoritmos es que cada paso debe estar definido de forma clara y precisa, sin ambigedades, de tal manera que pueda ejecutarse de forma inequvoca, por ejemplo, en el mundo de la ardilla, la instruccin gira() sera una instruccin ambigua, ya que la ardilla no sabra si debe girar a la derecha o a la izquierda. Otra caracterstica es que siempre terminan, por lo que no puede ser una lista infinita de pasos. Y tampoco puede contener pasos que sean irrealizables o cuya ejecucin sea infinita, pues en este caso no sera posible calcular el resultado deseado, si una instruccin est bien definida y es eficaz se puede asegurar que su ejecucin termina con xito, sin embargo, esto no garantiza, de ninguna manera, que el algoritmo tambin termine.
Por lo anterior, al disear un algoritmo se debe garantizar que dada cualquier entrada siempre termine y calcule la respuesta correcta. Es por eso que todo algoritmo debe contar con las siguientes caractersticas

1. Contar con entrada y salida. 2. Estar definido. 3. Ser eficaz. 4. Tener una terminacin.

Una vez que se ha diseado un algoritmo, se recomienda realizar una prueba de escritorio para verificar si funciona correctamente, esta prueba consiste en ejecutar el algoritmo utilizando papel y lpiz, es decir, se proponen datos de entrada especficos (como los que se ingresaran al programa ya funcionando) y se realiza cada una de las instrucciones indicadas en el algoritmo de acuerdo con el orden establecido, registrando los cambios que se producen despus de la ejecucin de cada instruccin. De esta manera, se valida que el resultado obtenido en la prueba de escritorio corresponda al resultado deseado.(el correcto) .

You might also like