Bonjour à tous je suis en 1 ere,

et j'ai un exercice que je n'arrive pas à résoudre malgré de nombreuse tentative sur python. Je ne sais pas ce que je fait de faux. Je tiens à préciser que je suis encore une débutante sur Python.

Donc l'exercice est le suivant:


la fonction f définie sur [30;130] par :

f (x )=8x²–800 x+30000/x², pour x dans [30 ;130]


1- On considère l’algorithme ci-dessous :

x =30

y =44/3

Tant que y≥ 4

x =x+1

y =8 x²–800 x+30000/x²

Fin Tant que

il faut que je convertisse ça en langage python afin de trouver la valeur de la variable x à la fin de l’exécution de l’algorithme.lorque j'ai calculer de matiniere algébrique j'ai trouve x=51





Où j'en suis dans mon devoir

voila ou j en suis a mon devoir:

def cons ():

x=30

y=44/3

while y >=4 :

x=x+1

y=8*x**2-800*x+30000/x**2


cons ()


je ne sais pas si mon algo est juste ou si il me manque quelque chose car lorsque je l’exécuté rien ne s'affiche. Si vous pouviez me guider se sera super.

Par ailleurs lorsque je l'ai résolu algébriquement j 'ai trouvé x=51 donc j'aimerai que mon programme puisse m'afficher le même résultat.


merci d'avance pour votre aide.



Sagot :

Bonsoir,

Ton code est bon, il manque juste une petite ligne.

Lorsque tu fais une fonction avec le mot clé "def", il faut qu'à la fin tu mettes un "return y" pour que ta fonction retourne la valeur y que tu peux par la suite stocker dans une variable en faisant par exemple:

y2 = cons()

Donc ton algorithme est le suivant (Version sans fonction):

x, y = 30, 44/3

while y >= 4:

  x += 1 #Ou x = x + 1 c'est identique.

  y = 8*x**2 - 800*x + 30000 / x**2

print(y)

Ou version avec fonction:

def cons():

  x, y = 30, 44/3

  while y >= 4:

     x += 1 #Ou x = x + 1 c'est identique.

     y = 8*x**2 - 800*x + 30000 / x**2

  return y

Bonne soirée,

Thomas