Además este método ayuda a que las tareas individuales sean hechas por distintas personas o grupos de personas de forma independiente, la base del trabajo en equipo.
Ya sabemos que las máquinas no piensan, sólo obedecen órdenes, por lo menos de momento. Las órdenes se las tenemos que transmitir en un idioma que depende de cada máquina, se llaman lenguajes de programación. Estos lenguajes tienen muy pocas tareas explícitas, el resto se forman a partir de secuencias de órdenes que forman funciones o procedimientos. Estas funciones pueden usar a otras funciones, que a su vez usan a otras funciones,…
Veamos un ejemplo: Quiero que un muñequito se mueva por la pantalla al pulsar las flechas de los cursores.
No tengo ni idea de cómo comenzar. Supongamos que hay una función que sí sabe y la llamamos MoverMuñeco (). Por tanto para hacer que un muñeco se mueva basta con llamar a la función MoverMuñeco ().
Vamos a dividir el problema MoverMuñeco en otros más sencillos.
MoverMuñeco () estará formado por otras funciones o procedimientos. Serían algo así.
Si ApretoFlecha (dirección) entonces MueveMuñeco (dirección)
MoverMuñeco lo hemos dividido en dos, la detección de que he apretado la tecla de la flecha y el movimiento en sí.
Y algo que era mover un muñeco en cualquiera le las 4 direcciones lo hemos simplificado en 4 funciones que mueven el muñeco en cada una de las direcciones.
MueveMuñeco (dirección) lo dividiremos en 4 posibilidades
- Si (dirección=derecha) entonces MueveMuñeco (derecha)
- Si (dirección=izquierda) entonces MueveMuñeco (izquierda)
- Si (dirección=abajo) entonces MueveMuñeco (abajo)
- Si (dirección=arriba) entonces MueveMuñeco (arriba)
Para mover el muñeco a la derecha, bastará con borrar el muñeco en la posición actual (posiciónHorizontalMuñeco, posiciónVerticalMuñeco) y volver a ponerlo en una posición más a la derecha.
La función MueveMuñeco (derecha) sería
BorrarMuñeco ()
Incrementar (posiciónHorizontalMuñeco)
DibujarMuñeco (posiciónVerticalMuñeco, posiciónHorizontalMuñeco)
Cada una de estas funciones iríamos simplificándolas hasta que el ordenador las entendiera. Por ejemplo, la función Incrementar (), sería:
Incrementar (valor) → {valor=valor+1}
La lección de este procedimiento que se usa en programación es no tener miedo a no saber algo. No hace falta dividir el problema en otros subproblemas que sí sepamos la solución, basta con que los problemas sean más sencillos. Y estos subproblemas se seguirán dividiendo hasta que al final sí sean resolubles, ya sea por nosotros o por terceras personas.
Son muchos los problemas que abandonamos por su enorme dimensión. Ni siquiera al dividir el problema en otros más pequeños vislumbramos su final. Es difícil tener la perspectiva de seguir dividiendo y dividiendo hasta que los problemitas sean triviales. No nos asustemos de los retos por muy grandes que sean.