👤

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.

Bonsoir,

Je dois finir au plus vite cet exercice de programmation python mais je bloque beaucoup, donc un explication rigoureuse ainsi qu'une réponse détaillé seraient les bienvenue, merci d'avance;

On veut calculer la monnaie à rendre sur un paiement en euros (sans les cents).La monnaie est rendue avec des pièces de 1 € et des billets de 5 €, 10 €, 20 € et 50 €.

a. Étant donné un prix à payer et un montant reçu du client, écrire un programme qui calcule et affiche le nombre de pièces et de billets de chaque valeur à rendre.

b. Le contenu de la caisse est représenté par un ensemble de variables correspondant au nombre de pièces et de billets de chaque valeur :

nb_1euro = 15 # nombre de pièces de 1 euro

nb_5euros = 4 # nombre de billets de 5 euros

nb_10euros = 12 # nombre de billets de 10 euros

nb_20euros = 5 # nombre de billets de 20 euros

nb_50euros = 4 # nombre de billets de 50 euros

Modifier le programme précédent pour afficher la monnaie à rendre en fonction du contenu de la caisse et mettre à jour le contenu de la caisse.

c. Que se passe-t-il si la caisse n’a pas assez de monnaie? Quelle solution proposez vous?

d. (Niveau Titan) Modifier le programme en créant la fonction suivante pour simplifier le code.

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"""

Source de l'exercice : livre NSI 1re spécialité Hachette édition 2021.


Bonsoir Je Dois Finir Au Plus Vite Cet Exercice De Programmation Python Mais Je Bloque Beaucoup Donc Un Explication Rigoureuse Ainsi Quune Réponse Détaillé Sera class=

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.
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.