Déterminer une fonction python
-
bonjour jai besoin d'aide pour cette question je n'etait pas la en cour merci
Que permet de déterminer cette fonction ?
def suite(n) :
n=0
u=6000
while u<7400 :
u=1,02u
n=n+1
return(n)La plus petite valeur de n telle que Un >7400
La plus petite valeur de n telle que Un ≥ 7400
La plus petite valeur de n telle que Un ≤ 7400
-
@Maissa-Bengueddoudj Bonsoir,
Utilise ta calculatrice pour faire l'analyse.
-
Bonsoir j'ai essayer mais je n'arrive pas du tout j'ai chercher sur youtube mais rien meme sur mon ordi sa me met error .
-
Bonjour,
J'ignore si ça peut t'aider, mais j'ai écrit ton programme en langage naturel (avec Algobox)
Je te le joins :
Ce programme permet de trouver la plus petite valeur de n telle que la condition Un<7400U_n\lt 7400Un<7400 n'est pas réalisée pour la première fois, c'est à dire Un≥7400U_n \ge 7400Un≥7400
Pour aider à comprendre :
Si tu fais calculer des termes succcessifs de la suite (Un)(U_n)(Un) à ta calculette, tu dois obtenir
U10≈7314U_{10}\approx 7314U10≈7314
U11≈7460U_{11}\approx 7460U11≈7460En bref, le programme que l'on te donne part de U0=6000U_0=6000U0=6000
Il calcule les termes successifs de la suite (Un)(U_n)(Un)Pour n=10, U10U_{10}U10 vaut (environ) 7314.
Vu que pour n=11n=11n=11, U11U_{11}U11 vaut(environ) 7460, le programme sort de la boucle "Tant que"
Vu que la dernière indication ( entre DEBUT_TANT_QUE et FIN_TANT_QUE est n=n+1n=n+1n=n+1, cela donne n=10+1=11n=10+1=11n=10+1=11, donc après la sortie de la boucle, le programme affiche 111111Remarque,
Si en plus, le programme avait demandé d'afficher UnU_nUn, il aurait affiché U11U_{11}U11 c'est à dire environ U11≈7460U_{11}\approx 7460U11≈7460Regarde :
Bon courage !
-
merci beaucoup j'ai compris.
-
Pour cet exercice aussi, il suffit de demander à la calculatrice de donner le résultat en affectant à nnn une valeur entière quelconque.
-
BBlack-Jack dernière édition par
Bonjour,
Quelques remarques sur le programme Python.
La ligne : u=1,02u comporte 2 erreurs et Python refusera l'exécution.
La virgule n'est pas le symbole décimal (du moins dans la plupart (sinon tous)) dans Python.
IL faut absolument utiliser le point décimal.
De plus, le signe de multiplication est obligatoirement l'* dans Python, ne rien mettre ou utiliser un autre symbole de multiplication est interdit.
Donc cette ligne devra OBLIGATOIREMENT s'écrire : u = 1.02*u
Autre remarque :
La fonction est écrite en devant lui passer un paramètre (n) ... ce qui est idiot puisque la première chose que l'on fait dans cette fonction est de mettre n à 0.
Cela n'empêche pas la fonction de se dérouler mais génère du code inutilement dans le compilateur et oblige, à l'appel de la fonction, de lui donner un paramètre qui ne sert à rien.
Cette fonction pourrait être simplifiée et corrigée ainsi :
def suite() : n=0 u=6000 while u<7400 : u=1.02*u n=n+1 return(n) print(suite())
La dernière ligne ne fait pas partie de la fonction, elle est simplement appelée par le programme principal qui affichera le résultat.
Si on voulait démarrer à calculer à partir d'un autre valeur de départ que U(0), alors il faudrait remettre le paramètre n dans la fonction ... mais il faudrait alors évidemment supprimer la ligne n = 0 de cette fonction.