Un transporteur de granulats chiffre la journée d'un camion, qui enchaîne trois tournées. La consommation d'une tournée dépend de la distance et de la masse transportée : 28 litres aux 100 km à vide, et 3 litres de plus aux 100 km par tonne chargée. La fonction Consommation applique cette règle, et la fonction CoutTournee s'en sert pour chiffrer une tournée, gazole à 1,75 euro le litre, plus 12 euros de préparation du chargement.
Une fois les trois tournées chiffrées, le programme estime le gazole du retour au dépôt, camion vide, sur une distance égale au cumul de la journée.
Le répartiteur saisit, pour chaque tournée, la distance en kilomètres puis la masse en tonnes : 120 et 8, puis 85 et 12, puis 200 et 5.
L'organigramme
Objectif
Donner le nombre d'appels de CoutTournee, puis celui de Consommation, le nombre de lignes affichées, et enfin les valeurs de total et de litresRetour à la fin du programme.
Pièges
Deux fonctions portent un paramètre nommé distanceKm, et une variable litres existe dans chacune d'elles : rien ne relie ces homonymes. Un appel peut par ailleurs en déclencher un autre, sans que le programme principal l'écrive, et la dernière ligne du programme principal appelle une fonction que la boucle avait déjà fait travailler.