Consejos varios a la hora de desarrollar un algoritmo, un programa o, si me apuras, hasta una receta de cocina
En este "breve" texto voy a exponer el procedimiento "ideal" de
desarrollo de un programa. No son más que unas pocas
consideraciones que, en proyectos cortos, quizá no hagan mucha
falta, pero que a la hora de afrontar algo "grande" ya sí hay
que prestarle más atención a qué se quiere hacer
y cómo se quiere hacer.
Muy esquemáticamente, lo que tendríamos que hacer es lo
siguiente:
Analizar el problema
Para ello, tendremos que definir el problema con precisión,
especificar los datos de partida (los datos que tendremos que
entrar) y especificar la información que ha de darse
al resolverse el problema (datos de salida, un mensaje comunicando
algo...)
Por ejemplo, si queremos escribir un algoritmo para calcular el
área de un rectángulo, tendremos que pensar en las
siguientes cosas:
"Me tienen que dar dos datos, uno de ellos será la base del
rectángulo, y el otro la altura. Estos datos serán reales.
Por otro lado, la salida es el área, que también ha de
ser un real."
Diseñar el algoritmo
No es más que pensar cómo resolver el problema, y
escribirlo de acuerdo a unas reglas. Sin embargo, no todos los
problemas son tan sencillos como querer calcular el área de
un rectángulo. Muchos de ellos son mucho más complejos
(como, por ejemplo, buscar si existe un tal "Pepe BuenaVida" dentro de
las fichas de un videoclub).
Por ello, hay una estrategia conocida con el nombre de "divide y
vencerás". Se basa en dividir un problema gordo y
complejo en otros más sencillos.
Tiene algunas ventajas:
- El algoritmo es más fácil de entender, al tenerlo
dividido en trocitos.
- Es más fácil modificar cada trocito que si lo
hubiéramos hecho a la brava (además, el hacer las cosas
a la brava tiene la pega de que buscar el lugar donde hay que hacer
modificaciones es más complicado).
Ademas, otra recomendación es describir primero los algoritmos en
un número reducido de pasos y, en una segunda vuelta, describir con
más detalle estos pasos.
Por ejemplo, si pensamos en "hacer pollo frito", lo primero
que pensamos es:
- Coger los ingredientes
- Coger los utensilios
- Hacer el pollo frito
Pero luego, a su vez, estos tres pasos se pueden detallar mucho
más. ¿Me dais sugerencias? (y así, de paso, me
preparo un pollo frito a vuestra salud ;) )
Usar el ordenador para programar ese algoritmo y ver cómo funciona
Obviamente, a nosotros puede parecernos que nuestro algoritmo está
impecable, pero siempre es bueno probarlo, traduciéndolo al lenguaje
que más nos guste (o, simplemente, al que vayamos a usar), porque,
si no obtenemos la salida deseada, podemos pararnos a revisar
nuestro algoritmo en busca de fallos.
A la fase de conversión de un algoritmo en las
instrucciones de un lenguaje de programación la llamamos
codificación, y al algoritmo, una vez que lo tenemos
escrito en un lenguaje de programación específico, lo
llamamos código.
Estos pequeños consejos, aunque obvios, son ignorados muchas veces,
y hacen padecer, desde el principio, a un programa de una mala
estructura. Pararse a pensar un poco en lo que se quiere hacer y
recapacitar en la mejor manera posible puede ahorrarnos que, más
adelante, cuando queramos hacer alguna modificación al programa,
tengamos que reescribirlo por completo.