Un algorithme Dans un distributeur automatique de monnaie, on ne trouve que des billets de 10 et 5 €, des pièces de 2 et 1 €. Dans ce distributeur, on met sa carte bancaire ; on demande une certaine somme ; le distributeur nous donne la monnaie en commençant par le maximum de billets de 10 €, puis en réitérant le processus sur l’argent qu’il reste à rendre avec des billets de 5 € puis avec des pièces de 2 et 1 €, et ce jusqu’à ce que le montant ait été totalement rendu. Par exemple, on demande 58 euros : le distributeur nous donne 5 billets de 10 €, 1 billet de 5 €, 1 pièce de 2 € et 1 pièce de 1 €. Écrire un programme qui nous donne le rendu du distributeur pour la somme demandée.
Un écriture possible Entrée Introduire un nombre entier N Initialisation Affecter à la liste 1 la séquence {10, 5, 2, 1} Traitement Tant que N>0 choisir dans la liste 1 la coupure X la plus grande qui ne dépasse pas la somme restante N affecter à N la valeur N-X afficher X
Une implémentation sur calculatrice Edition Exécution
D’autres points de vue Une autre procédure Tant que N>0 choisir dans la liste 1 la coupure X la plus grande qui ne dépasse pas la somme restante N effectuer la division « euclidienne » de N par X affecter à Q le quotient affecter à R le reste affecter à N la valeur R afficher X et Q D’autres outils Utiliser les listes pour stocker les résultats