Algoritmos mis pequeños tiranos – Volumen I

¡Bienvenidos un día más a un nuevo rootie queridos amigos! Hoy vamos a empezar a hablar de un tema que, a mí personalmente me encanta, pero a muchos programadores no les gusta o lo encuentran especialmente difícil durante su época de estudiantes, exactamente me refiero a los Algoritmos.

Introducción

En este artículo vamos a hablar sobre la algoritmia aplicada al análisis de software , qué es y para qué la usamos, además este post nos servirá de introducción para profundizar en el tema en próximas entregas.

Lo primero que debemos hacer para entender de qué va todo esto, es definir lo que es un algoritmo:

Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. – Wikipedia

kartlos-arguiñano-receta-algoritmo
Vamos, una receta de toda la vida.

¡Cómo está Karlos Arguiñano, se las sabe todas! Efectivamente, una receta es el claro ejemplo de un algoritmo, representado en algo que todos podemos entender. Los algoritmos son elementos que están presentes en el día a día de cualquier persona, lo que pasa es que la mayor parte del tiempo no somos conscientes de ello, nuestra mente los crea y ejecuta de manera automática.

Resolución de problemas y diseño de algoritmos

Cuando nos enfrentamos por primera vez a un problema que queremos resolver a través de una aplicación de software, el primer paso para conseguirlo es definir entender el problema. Parece algo muy obvio, pero he perdido la cuenta de las veces que he visto y/o participado en el desarrollo de una aplicación/web/programa, que una vez terminado no ha servido para absolutamente nada, porque no da ninguna solución al problema.

Después de analizar el problema se deben saber tres puntos de forma clara y concisa:

  • Datos de entrada de los que se disponen
  • Proceso que se ha de seguir con los datos
  • Información de salida deseada
logo-bing-inservible
Hablando de cosas que no solucionan problemas…

Una vez que tengamos toda esta información, podremos proceder a diseñar el algoritmo. En este paso pondremos por escrito el proceso que nuestro futuro software ha de seguir. Para ello tenemos diferentes herramientas pero las más recomendadas y usadas son el pseudocódigo y los diagramas de flujo.

Pseudocódigo, el gran incomprendido.

El pseudocódigo es un falso lenguaje que combina el lenguaje natural (en nuestro caso Español) con la estructura de los lenguajes de programación, pero siendo totalmente ajeno a estos últimos. El resultado es un texto que recuerda a una serie de instrucciones de programación, que puede ser leído por un ser humano pero no interpretado por una máquina.

Dicho todo esto, vamos a verlo aplicado a un problema real, y como nos ha indicado nuestro chef favorito, vamos a crear un algoritmo para cocinar el plato por excelencia: Un huevo frito

Como se puede ver, el pseudocódigo anterior muestra todos los pasos necesarios para freír un huevo utilizando un lenguaje natural, pero siguiendo la estructura de un lenguaje de programación, esto es una de las primeras representaciones que se debe hacer siempre de un algoritmo antes de empezar a codificarlo en cualquier lenguaje. Y aunque muchos programadores más veteranos, no suelen escribir e incluso desprecian la utilidad del pseudocódigo, el gastar el poco tiempo que cuesta realizarlo cuando se tiene algo de práctica, puede ahorraros futuros dolores de cabeza.

Yo suelo escribir pseudocodigo en cualquier superficie de cristal de la oficina :D
Yo suelo escribir pseudocódigo en cualquier superficie de cristal de la oficina 😀

Como añadido, el tener creados documentos que describan el problema y la/s solución/es de una forma entendible por el ser humano utilizando cualquier herramienta de análisis a nuestro alcance, no solo nos ayudará a ser más eficientes a la hora de codificar nuestro software, sino que crean una base documental, con la cual se hará más fácil entender las diferentes partes del proyecto, tanto a futuros miembros que puedan unirse, como a ti mismo cuando revises tu trabajo una vez terminado.

Y hasta aquí la entrada de hoy. En nuestro próximo artículo hablaremos sobre diagramas de flujo!

 

One Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *