El paso previo para resolver un problema es tener claro que existe un problema y la naturaleza del mismo. Este paso previo es fundamental, pues no será la primera vez que queremos solucionar un problema inexistente o desconocido. Esto da lugar a situaciones ridículas como los puentes a ningún sitio, los aeropuertos vacíos o las carreteras fantasma que pueblan nuestro país y en realidad, el mundo entero.
Una vez identificado el problema buscaremos un algoritmo que lo resuelva, entre los existentes o ideándolo nosotros mismos. Y a continuación llega el momento de traerlo a la realidad, fuera de nuestra mente.
Para ello existen ingeniosos medios de uso común en programación. El primero de ellos es el pseudocódigo que consiste en una serie de instrucciones, a modo de consejos entre amigos, que desglosan el algoritmo y permiten la resolución del problema.
// Juego simple que pide al usuario que adivine un numero en 10 intentos
Proceso Adivina_Numero
intentos<-10
num_secreto <- azar(100)+1
Escribir "Adivine el numero (de 1 a 100):"
Leer num_ingresado
Mientras num_secreto<>num_ingresado Y intentos>1 Hacer
Si num_secreto>num_ingresado Entonces
Escribir "Muy bajo"
Sino
Escribir "Muy alto"
FinSi
intentos <- intentos-1
Escribir "Le quedan ",intentos," intentos:"
Leer num_ingresado
FinMientras
Si num_secreto=num_ingresado Entonces
Escribir "Exacto! Usted adivino en ",11-intentos," intentos."
Sino
Escribir "El numero era: ",num_secreto
FinSi
FinProceso
Otro medio más avanzado sería la realización de diagramas, o dibujos, que permiten expresar la consecución de acciones para resolver el problema. En este caso, destacan dos formas empleadas comunmente: el diagrama de Nassi-Shneiderman y el diagrama de flujo.
El diagrama de Nassi-Shneiderman es una representación gráfica mediante polígonos conectados que muestra las fases de resolución del problema. Sin entrar en detalles, su aspecto es el de un juego de piezas encajadas con texto en su interior. Las piezas tienen distintas formas según la acción que realizan. Por ejemplo la ejecución de acciones son piezas rectangulares, las decisiones son triángulos que se complementan con acciones triangulares y los bucles son bloques en forma de L.
Los diagramas de flujo son representaciones de los algoritmos mediante bloques interconectados por flechas. No sólo se utilizan en programación sino en la industria por lo que existen normas industriales que regulan su forma de uso (ANSI, ASME, ECMA...) No obstante, existen símbolos estándar que son los más utilizados en todos los sistemas, como el óvalo para inicio y fin del proceso, el rectángulo para una accion o proceso y el rombo para una decisión.
Los gráficos de este artículo han sido realizados con el programa de diseño Pseint, de licencia GNU GPL v2.
Esta batería de herramientas nos permite poner "negro sobre blanco" la idea que tenemos para solucionar un problema (dígase, hacer un huevo frito para solucionar nuestro problema de hambre o acercarse a un/a chico/a que nos gusta).
Ya veis que primero debemos ordenar las ideas antes de escribir líneas de código. Ahora empezaremos a "quemar" el teclado, escribiendo nuestro código. Recuerda que primero debe existir un problema real, no vaya a ser que construyamos "puentes a ninguna parte".
J. Carlos Avendaño
Club Tecnológico
No hay comentarios:
Publicar un comentario