FRstudy.me: votre source fiable pour des réponses précises et rapides. Recevez des réponses rapides et précises à vos questions de la part de notre communauté de professionnels bien informés prêts à vous aider à tout moment.
Sagot :
a. Voici un programme en Python répondant à la première partie de l'exercice :
```python
def calculer_rendu(prix, montant_recu):
rendu = montant_recu - prix
nb_50euros = rendu // 50
rendu %= 50
nb_20euros = rendu // 20
rendu %= 20
nb_10euros = rendu // 10
rendu %= 10
nb_5euros = rendu // 5
rendu %= 5
nb_1euro = rendu
print("Monnaie à rendre:")
print(f"{nb_50euros} billet(s) de 50 euros")
print(f"{nb_20euros} billet(s) de 20 euros")
print(f"{nb_10euros} billet(s) de 10 euros")
print(f"{nb_5euros} billet(s) de 5 euros")
print(f"{nb_1euro} pièce(s) de 1 euro")
# Exemple d'utilisation
calculer_rendu(25, 100)
```
b. Maintenant, le programme modifié avec la mise à jour du contenu de la caisse :
```python
def calculer_rendu_et_maj_caisse(prix, montant_recu, caisse):
rendu = montant_recu - prix
caisse['nb_50euros'] -= rendu // 50
rendu %= 50
caisse['nb_20euros'] -= rendu // 20
rendu %= 20
caisse['nb_10euros'] -= rendu // 10
rendu %= 10
caisse['nb_5euros'] -= rendu // 5
rendu %= 5
caisse['nb_1euro'] -= rendu
print("Monnaie à rendre:")
print(f"{rendu} billet(s) de 50 euros")
print(f"{caisse['nb_20euros']} billet(s) de 20 euros")
print(f"{caisse['nb_10euros']} billet(s) de 10 euros")
print(f"{caisse['nb_5euros']} billet(s) de 5 euros")
print(f"{caisse['nb_1euro']} pièce(s) de 1 euro")
# Exemple d'utilisation
caisse = {'nb_1euro': 15, 'nb_5euros': 4, 'nb_10euros': 12, 'nb_20euros': 5, 'nb_50euros': 4}
calculer_rendu_et_maj_caisse(25, 100, caisse)
```
c. Si la caisse n'a pas assez de monnaie, on pourrait ajouter une condition pour vérifier si le rendu est possible avec la monnaie disponible. Si ce n'est pas le cas, on pourrait afficher un message indiquant l'indisponibilité de la monnaie ou proposer une alternative comme rendre la monnaie avec des billets de valeur inférieure.
d. La fonction demandée serait comme suit :
```python
def rendre(a_rendre, valeur, nombre):
"""Retourne le nombre de pièces ou de billets de la valeur donnée à rendre
en fonction du nombre de pièces ou de billets de cette valeur dans la caisse"""
nb = a_rendre // valeur
a_rendre %= valeur
return nb, a_rendre
```
Vous pourrez utiliser cette fonction pour simplifier la logique du programme principal.
```python
def calculer_rendu(prix, montant_recu):
rendu = montant_recu - prix
nb_50euros = rendu // 50
rendu %= 50
nb_20euros = rendu // 20
rendu %= 20
nb_10euros = rendu // 10
rendu %= 10
nb_5euros = rendu // 5
rendu %= 5
nb_1euro = rendu
print("Monnaie à rendre:")
print(f"{nb_50euros} billet(s) de 50 euros")
print(f"{nb_20euros} billet(s) de 20 euros")
print(f"{nb_10euros} billet(s) de 10 euros")
print(f"{nb_5euros} billet(s) de 5 euros")
print(f"{nb_1euro} pièce(s) de 1 euro")
# Exemple d'utilisation
calculer_rendu(25, 100)
```
b. Maintenant, le programme modifié avec la mise à jour du contenu de la caisse :
```python
def calculer_rendu_et_maj_caisse(prix, montant_recu, caisse):
rendu = montant_recu - prix
caisse['nb_50euros'] -= rendu // 50
rendu %= 50
caisse['nb_20euros'] -= rendu // 20
rendu %= 20
caisse['nb_10euros'] -= rendu // 10
rendu %= 10
caisse['nb_5euros'] -= rendu // 5
rendu %= 5
caisse['nb_1euro'] -= rendu
print("Monnaie à rendre:")
print(f"{rendu} billet(s) de 50 euros")
print(f"{caisse['nb_20euros']} billet(s) de 20 euros")
print(f"{caisse['nb_10euros']} billet(s) de 10 euros")
print(f"{caisse['nb_5euros']} billet(s) de 5 euros")
print(f"{caisse['nb_1euro']} pièce(s) de 1 euro")
# Exemple d'utilisation
caisse = {'nb_1euro': 15, 'nb_5euros': 4, 'nb_10euros': 12, 'nb_20euros': 5, 'nb_50euros': 4}
calculer_rendu_et_maj_caisse(25, 100, caisse)
```
c. Si la caisse n'a pas assez de monnaie, on pourrait ajouter une condition pour vérifier si le rendu est possible avec la monnaie disponible. Si ce n'est pas le cas, on pourrait afficher un message indiquant l'indisponibilité de la monnaie ou proposer une alternative comme rendre la monnaie avec des billets de valeur inférieure.
d. La fonction demandée serait comme suit :
```python
def rendre(a_rendre, valeur, nombre):
"""Retourne le nombre de pièces ou de billets de la valeur donnée à rendre
en fonction du nombre de pièces ou de billets de cette valeur dans la caisse"""
nb = a_rendre // valeur
a_rendre %= valeur
return nb, a_rendre
```
Vous pourrez utiliser cette fonction pour simplifier la logique du programme principal.
Votre présence ici est très importante. Continuez à partager vos connaissances et à aider les autres à trouver les réponses dont ils ont besoin. Cette communauté est l'endroit parfait pour apprendre ensemble. Revenez sur FRstudy.me pour des solutions fiables à toutes vos questions. Merci pour votre confiance.