De volgende deelproblemen kunnen geïdentificeerd worden (maar het zou ook anders kunnen):
Breng de oplossing van ieder deelprobleem onder in een
aparte routine.
Beslis zelf hoe elke routine gekoppeld is aan (communiceert met)
zijn buitenwereld (parameters, resultaatwaarde, globale variabelen, etc.).
Leg dit vast in zijn specificatie
in het commentaar onder dev
.
Routine 4 kan gebruik maken van routine 3 en die weer van routine 2. Het hoofdprogramma roept achtereenvolgens routines 1 en 4 aan.
Het maken van elke routine moet een fluitje van een cent zijn (afgezien misschien van routine 3, die wat lastiger is). Juist door zaken te scheiden kun je je aandacht telkens richten op één probleem. Verdeel en heers.
Als je moeite hebt met het oplossen van het probleem, zelfs zonder gebruik van routines, dan kun je vensters1mz.py raadplegen om wat ideeën op te doen. Dit programma bevat geen routines, geen zinvol commentaar en ook de naamgeving is niet erg behulpzaam, maar "het werkt" aardig. Zo'n programma is nagenoeg waardeloos als product. (Met een slechtere opmaak is het nog erger: vensters1mzs.py).
Het lijkt misschien overdreven om voor dit probleem vier routines te introduceren. Maar de professional zal dat i.h.a. wel doen, omdat die weet hoeveel profijt verdeel en heers biedt. Bij grotere problemen is dit onontbeerlijk.
Deze opgave is specifiek gericht op het opdelen en het regelen van de communicatie tussen de delen. Hierover staat wat theorie in Leren Programmeren in Python, Deel 3