Bonjour,
Pourriez vous m'aidez à faire l'exercice ci dessous j'y ai passé beaucoup de temps mais je n'y arrive pas merci d'avance pour votre aide
Exercice:
Une voiture perd 10% de sa valeur chaque année. On cherche à connaître son prix au bout de n années sachant qu'à l'achat, elle coûtait 35 000€
1) recopier et compléter la fonction ci-dessous afin qu'elle affiche le prix de la voiture au bout de n années.
def prix(n)
prix=...
for i in range(n):
prix=.....
return prix
2) combien faudra t'il d'années pour que la voiture ait perdu la moitié de sa valeur d'achat ?
Merci d'avance pour votre aide
Bonsoir
Quelle est la quantité variable du problème (en fonction de laquelle la solution est différente) ? Comment pouvez vous adapter le programme en fonction ?
Bonjour,
Concernant le programme j'aurais mis
Def prix(n):
Prix = 35 000
For I in range(n):
Prix= 35 000 -10/100
Return prix
Oui je pense
Par exemple la 1ère année elle coute 35 000€ donc la seconde année elle coûtera 31500
La troisième année on fera 31 500-10%
Il y a 2 problèmes.
1er problème :
Quand tu fais Prix=35000-10/100, tu ne retires pas 10% de 35000, tu retires 10/100, tu retires donc un montant fixe
35000-10/100, ça donne 35000 -0.1 , et donc 34999.99
Il faudrait faire Prix=35000 * (1-10/100)
Jusque là, c'est une erreur sur les pourcentages ; il faut bien comprendre la mécanique des pourcentages.
2ème problème :
Maintenant,c'est un problème de programmation.
Le programme va exécuter plusieurs fois cette instruction ; l'instruction est dans une boucle ; si on a 10 annnées, le programme passera 10 fois sur cette instruction.
Si on met à cet endroit Prix=35000 * (1-10/100) alors à chaque fois, il fera le même calcul, il repartira de la valeur initiale (35000) et il enlèvera 10%
Que l'on passe 1 fois sur cette instruction, ou 10 fois, ce sera pareil, on a au final 31500€.
Alors qu'à chaque nouveau passage, on devrait repartir de la valeur précédente, (et pas de la valeur initiale), et enlever 10%
La bonne instruction est donc Prix=Prix*(1-10/100)
Il faut bien voir que cette écriture Prix=Prix*(1-10/100) n'a pas du tout le même sens en Programmation qu'en maths.
En maths, le symbole = veut dire que les 2 membres (celui de droite et celui de gauche) sont égaux.
En maths , les lignes a=b et b=a sont strictement équivalentes. Alors qu'en programmation a=b ou b=a, ce n'est pas du tout la même chose.
L'instruction Prix=Prix*(1-10/100) se lit en fait : NouveauPrix = AncienPrix multiplié par (1-10/100) ; On écrase l'ancienne valeur du Prix, et on la remplace par la nouvelle, qui est 10% plus basse.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :