Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Programmation

Posté par
Laure31
18-02-20 à 21:57

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

Posté par
cerveaulogik
re : Programmation 18-02-20 à 22:05

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 ?

Posté par
Laure31
re : Programmation 18-02-20 à 22:14

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

Posté par
cerveaulogik
re : Programmation 18-02-20 à 22:37

Est ce que la diminution du prix chaque année dépend de la valeur du prix au début de l'année ?

Posté par
Laure31
re : Programmation 18-02-20 à 22:44

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%

Posté par
ty59847
re : Programmation 18-02-20 à 23:20

Mais quand tu fais Prix= 35 000 -10/100 , ça correspond à ce que tu viens d'écrire ?

Posté par
Laure31
re : Programmation 19-02-20 à 00:27

Non je penses pas mais justement je sais pas comment faire pour que sa corresponde

Posté par
Laure31
re : Programmation 19-02-20 à 00:30

Mais ducoup il faudrait mettre
x-10/100 ?

Posté par
alb12
re : Programmation 19-02-20 à 10:58

salut,
prix_suivant=prix_precedent-0.1*prix_precedent

Posté par
ty59847
re : Programmation 19-02-20 à 11:08

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 :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1510 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !