Los algoritmos son parte fundamental del proceso de desarrollo de aplicaciones. Por simpleza, definiré el algoritmo como un conjunto de pasos para cumplir con una meta. Si bien las aplicaciones están compuestas por lo general de más de un algoritmo, este es la base de todo.
Los algoritmos pueden venir en múltiples sabores, simples, genéricos, complejos. Lo principal a la hora de trabajar en un algoritmo es imaginar la meta y cómo queremos llegar a ella y a partir de allí enseñarle a una máquina que sólo sabe hacer operaciones restringidas cómo hacerlo.
Imaginemos un juego de ajedrez en el que queremos mover el alfil de la posición F1 a la H4, para nosotros es sencillo, sólo debemos mover la pieza en forma diagonal, pero para una máquina que sólo puede hacer operaciones logico-aritméticas no lo es tanto, por lo que debemos en principio, enseñarle que diagonal implica mover una posición en el eje de las letras y otra en el de los números hasta llegar al lugar indicado, sin salirse del tablero.
Es decir, conceptos arraigados en nuestro cerebro deben ser reinterpretados para poder convertirlos en pasos simples.
Una vez identificados los pasos simples procedemos a convertirlos a las estructuras necesarias, para que en un lenguaje de programación de alto (o bajo) nivel se puedan convertir en instrucciones que el/los procesador/es puedan entender.
Debemos identificar en principio:
- Estructuras de datos: que son los tipos de datos que son necesarios para nuestro algoritmo. Por ejemplo: fecha, hora, texto, etcétera.
- Estructuras de decisión o control: que son estructuras que permiten ejecutar diferentes instrucciones dadas ciertas condiciones.
- Estructuras de repetición: que se trata de estructuras que nos permite ejecutar reiteradamente porciones de nuestro algoritmo sobre algún dato o conjunto de ellos.
Hablaremos de esto en otros artículos. Hasta aquí por ahora.