Si quelqun a la reponse pour cet exercice, je le remercie d'avance
On dispose d’une liste (ou liste d’association ou dictionnaire) de produits, chaque produit est defini par un nom (represente
par un symbole) et un prix (represente par un entier naturel). Un produit est represente en scheme par une liste de
longueur 2 : (nom prix). Soit Lpex l’exemple de liste de produits ci-dessous. Il servira `a illustrer les questions suivantes.
((voiture 40)(peluche 50)(velo 100)(balle 10)(train 60)(cube 11)(disque 12))
Dans les questions suivantes on supposera que tous les produits ont un nom et un prix different.
1. Definissez la fonction (prix nom lp) qui donne le prix du produit de nom nom dans la liste de produits lp.
2. Definissez la fonction (moinsCher lp) qui rend le produit le moins cher de la liste de produits lp. Par exemple
(moinsCher Lpex) vaut (balle 10).
3. On s’interesse maintenant au probleme suivant : etant donne une liste de produits et une somme, calculer une liste
d’achat, c’est `a dire une sous-liste de produits dont la somme des prix n’excede pas la somme. Pour cela on peut
selectionner en priorite les produits les moins chers : on cherche le produit le moins cher, si son prix est inferieur
au credit, on le place dans la liste d’achat et on continue avec le reste des produits et le credit ampute du prix du
produit selectionne. Par exemple (achat Lpex 110) vaut ((balle 10) (cube 11) (disque 12) (voiture 40))
ou toute autre liste ayant les mˆemes ´elements, mais dans un ordre different.
Ecrivez en scheme la fonction (achat lp somme).
Partager