520 |
|
La programación se reduce a la ciencia y arte de solucionar
problemas. Para ser un buen programador, debe ser un buen solucionador de
problemas y, para lograr esto, debe enfrentar éstos en forma metódica, desde la
inicial definición e inspección del problema hasta la solución final,
verificación y comentarios. Al principio, cuando enfrenta un problema de
programación, se verá tentado a ir a la computadora y empezar a codificar tan
pronto como obtenga una idea de cómo resolverlo. Sin embargo, debe resistirse
ante esta tentación. Tal enfoque puede funcionar para problemas simples, pero
no ocurre lo mismo con problemas complejos del mundo real. Un buen carpintero
puede intentar construir una perrera sin planos, pero nunca intentará construir
la "casa de sus sueños" sin un buen paquete de planos que representen
al proyecto. En este capítulo, aprenderá un método sistemático que lo convertirá
en un buen solucionador de problemas y, por tanto, un buen programador al cual
denomino el algoritmo del programador. En particular, estudiará los pasos que
se requieren para resolver casi cualquier problema de programación usando el
método estructurado descendente (top-down). Se presentará el concepto de
abstracción, que permite ver los problemas en términos generales sin la
angustia de los detalles de implantación que se requieren para un lenguaje de
computadora. A partir de una solución inicial abstrac-ta, refinará la solución
paso a paso hasta que alcance un nivel que pueda ser codifica-do directamente
dentro de un programa de computadora. Asegúrese de entender este material y
resuelva los problemas relacionados al final del capítulo. Conforme tenga más
experiencia en programación, encontrará que el "secreto" para
programar con éxito es un buen planeamiento a través del análisis abstracto y
el refinamiento paso a paso, lo cual dará como resultado diseños de software
estructurado de "arriba a abajo". Estos diseños son soportados por
lenguajes como C++. En los capítulos siguientes, usted trabajará sobre este
conocimiento para elaborar programas manejables C++.
|