Préparer un thé à la menthe
Le gros problème « faire le thé » se découpe en petites tâches simples : chauffer l'eau, rincer le thé, ajouter la menthe et le sucre, laisser infuser, servir. Chaque tâche est facile à faire seule.
Comprendre l'approche descendante et l'approche ascendante pour décomposer un problème complexe en tâches simples.
Votre établissement veut un programme qui produit le relevé de notes de fin de semestre de chaque stagiaire : moyennes par module, moyenne générale, décision. Le problème est trop gros pour être écrit d'un bloc. Il faut le découper en morceaux que l'on sait résoudre un par un.
On part du problème complet, sans entrer dans les détails.
Un problème réel est rarement simple. Pour le résoudre, on le décompose en sous-problèmes. Il existe deux façons de le faire.
On part de l’objectif général, puis on le découpe en grandes étapes, que l’on découpe à leur tour, jusqu’à obtenir des tâches simples. C’est l’approche la plus utilisée pour concevoir un algorithme.
Produire le relevé
├── Saisir les notes
├── Calculer les moyennes
│ ├── Moyenne de chaque module
│ └── Moyenne générale
├── Décider
└── Afficher
On part de briques simples qui existent déjà (des fonctions, des procédures) et on les assemble pour construire une solution plus grande. C’est l’approche naturelle quand on réutilise du code.
Les deux approches se combinent : on découpe le problème de haut en bas, puis on écrit et teste les petites briques en premier, avant de les assembler. Chaque brique deviendra plus tard une fonction ou une procédure (leçon B.3).
Le gros problème « faire le thé » se découpe en petites tâches simples : chauffer l'eau, rincer le thé, ajouter la menthe et le sucre, laisser infuser, servir. Chaque tâche est facile à faire seule.
On part du haut (« la sortie ») et on descend : choisir le lieu, réserver le bus, collecter l'argent, prévenir les parents. Quand une tâche est encore trop grosse, on la redécoupe.
Sortie de classe
├─ Choisir le lieu
├─ Transport
│ ├─ Demander des devis
│ └─ Réserver le bus
└─ Budget
├─ Calculer le prix par stagiaire
└─ Collecter l'argent Un magasin veut connaître, en fin de journée, les produits dont le stock est passé sous 5 unités. Proposez une décomposition descendante en 3 ou 4 tâches, puis détaillez la tâche la plus complexe.
Commencez par les grandes étapes (lire, calculer, comparer, afficher) avant de détailler.
Repérer les produits à recommander
1. Lire la liste des produits et leur stock du matin
2. Lire les ventes de la journée
3. Calculer le stock restant de chaque produit
Pour chaque produit :
stockRestant ← stockMatin - quantitéVendue
4. Afficher les produits dont stockRestant < 5
Vous disposez déjà de trois sous-programmes écrits par un collègue : CalculerMoyenne, LireNote et AfficherMention. Vous les assemblez pour produire un bulletin. Quelle approche utilisez-vous ? Justifiez.
Approche ascendante : on part de briques déjà existantes (LireNote, CalculerMoyenne, AfficherMention) et on les assemble pour construire la solution complète.