Déterminer une fonction python


  • Maissa Bengueddoudj

    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


  • N
    Modérateurs

    @Maissa-Bengueddoudj Bonsoir,

    Utilise ta calculatrice pour faire l'analyse.


  • Maissa Bengueddoudj

    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 .


  • mtschoon

    Bonjour,

    J'ignore si ça peut t'aider, mais j'ai écrit ton programme en langage naturel (avec Algobox)
    Je te le joins :
    suitegéo.jpg

    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 7400Un7400

    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 7314U107314
    U11≈7460U_{11}\approx 7460U117460

    En 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 111111

    Remarque,
    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 7460U117460

    Regarde :
    suitegéogéo.jpg

    Bon courage !


  • Maissa Bengueddoudj

    merci beaucoup j'ai compris.


  • N
    Modérateurs

    @Maissa-Bengueddoudj

    Pour cet exercice aussi, il suffit de demander à la calculatrice de donner le résultat en affectant à nnn une valeur entière quelconque.


  • B

    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.


Se connecter pour répondre