Exercice
Une société de vente de sable souhaite organiser ses livraisons pour la journée. Ses camions, au
nombre de nbCa, sont numérotés de 0 à nbCa-1 et chaque camion n’effectue qu’une seule
livraison par journée. La société dispose :
• d’un tableau, tabCaDisp (de type TabCaDisp) qui, à chaque numéro de camion, associe un
booléen indiquant s’il est disponible ou non. Un camion n’est pas disponible lorsqu’il est en
révision, que son chauffeur est en congé ou qu’il est déjà attribué à un client.
• du nombre total de camions, nbCa,
• d’un tableau, tabClient (de type TabClient), des clients à livrer. Il contient, pour chaque client
à livrer, les informations suivantes :
- nom du client,
- quantité commandée (en tonne),
- nombre de kilomètres entre le dépôt et le lieu de livraison,
• du nombre de clients à livrer, nbCl.
Vous utiliserez, sans les réécrire dans le lexique, les définitions de types suivantes :
- TabCaDisp = tableau booléen [0.. nbCa-1]
- TabClient = tableau Client [0.. nbCl-1]
- Client = <nom : chaîne, qc : réel, nbk : réel> type Client où nom est le nom du client,
qc est la quantité commandée par le client et nbk est le nombre de kilomètres entre le
dépôt et le lieu de livraison
On demande d’écrire les algorithmes des questions suivantes.
Question 1 (4 points)
Ecrire une fonction qui calcule le prix total à payer pour un client à partir de :
- la quantité en tonne commandée par le client,
- le prix d’une tonne de sable,
- le nombre de kilomètres entre le dépôt et le lieu de livraison
- le prix du kilomètre pour les 100 premiers kilomètres (appelé pkmMoins),
- le prix du kilomètre pour les suivants soit à partir du 101ème kilomètre (appelé
pkmPlus),
- et le nombre de camions nécessaires à la livraison.
Le prix payé par le client comprend deux parties : le prix pour le sable d'une part, et le prix de la
livraison d'autre part. Le prix de la livraison est un forfait au kilomètre par camion.