par sos-math(21) » lun. 25 févr. 2013 16:48
Bonjour,
Je pense qu'il y a une erreur dans ton algorithme :
Dans ta première condition, tu écris si X>50, alors X devient X-10 : donc si tu prends un prix supérieur à 100 euros, il est supérieur à 50 euros, donc cette condition s'applique et il te renvoie le prix baissé de 10 euros et c'est tout et il ne rentre pas dans la deuxième boucle.
En algorithmique, les conditions doivent s'exclure les unes des autres.
Il faut donc réécrire l'algorithme avec des conditions qui ne se "chevauchent" pas !
Pour construire ton algorithme, tu as besoin de savoir ce qui se passe selon les valeurs de x : on distingue 3 cas, donc trois intervalles :
- pour \(x\in[0\,;\,50]\), il ne se passe rien : le prix reste égal à f(x)= x ;
- pour \(x\in]50\,;\,110]\), le prix est supérieur à 50 euros donc on le baisse de 10 euros, mais comme il est inférieur ou égal à 110, le prix baissé reste inférieur à 100 euros donc on ne fait rien d'autre : x devient f(x)=x-10 ;
- pour \(x\in]110\,;\,+\infty[\), le prix est supérieur à 50 euros donc on le baisse de 10 euros mais le prix baissé reste supérieur à 100 euros donc on le baisse encore de 10% :
le prix x devient f(x)=0,9(x-10).
Il reste donc à mettre cela en algorithme : tu as besoin de deux conditions SI SINON, imbriquées l'une dans l'autre.
Essaie de traduire cela en langage naturel puis en programme calculatrice.
Bon courage
Bonjour,
Je pense qu'il y a une erreur dans ton algorithme :
Dans ta première condition, tu écris si X>50, alors X devient X-10 : donc si tu prends un prix supérieur à 100 euros, il est supérieur à 50 euros, donc cette condition s'applique et il te renvoie le prix baissé de 10 euros et c'est tout et il ne rentre pas dans la deuxième boucle.
En algorithmique, les conditions doivent s'exclure les unes des autres.
Il faut donc réécrire l'algorithme avec des conditions qui ne se "chevauchent" pas !
Pour construire ton algorithme, tu as besoin de savoir ce qui se passe selon les valeurs de x : on distingue 3 cas, donc trois intervalles :
- pour [tex]x\in[0\,;\,50][/tex], il ne se passe rien : le prix reste égal à f(x)= x ;
- pour [tex]x\in]50\,;\,110][/tex], le prix est supérieur à 50 euros donc on le baisse de 10 euros, mais comme il est inférieur ou égal à 110, le prix baissé reste inférieur à 100 euros donc on ne fait rien d'autre : x devient f(x)=x-10 ;
- pour [tex]x\in]110\,;\,+\infty[[/tex], le prix est supérieur à 50 euros donc on le baisse de 10 euros mais le prix baissé reste supérieur à 100 euros donc on le baisse encore de 10% :
le prix x devient f(x)=0,9(x-10).
Il reste donc à mettre cela en algorithme : tu as besoin de deux conditions SI SINON, imbriquées l'une dans l'autre.
Essaie de traduire cela en langage naturel puis en programme calculatrice.
Bon courage