Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 30-12-2022 00:37:48

maissaben123
Membre
Inscription : 30-12-2022
Messages : 1

suite

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

Hors ligne

#2 30-12-2022 12:11:52

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : suite

Bonjour,

Qui a écrit  cette fonction ?
J'espère que c'est toi...
Telle quelle, elle ne peut pas fonctionner...
Tu te promènes dans une galerie marchande. Tu vois un magasin de réparation de smartphone : ça tombe bien le tien, le tien commence à faire n'importe quoi...

1. Tant que tu ne pousses pas la porte du magasin, tu n'as aucune chance, qu'ils te disent ce qui ne va pas...
2. Tu ne peux qu'y envoyer un message (et demander qu'on te renvoie la réponse --> return)

Donc ta fonction, il faut l'appeler et récupérer ou imprimer la réponse...
Ici ta fonction se nomme suite()...
Avec suite(n), tu lui passes en paramètre la valeur de n...
Et dans la fonction, tu trouves la mention n=0 qui ne sert à rien :
donc, soit tu supprimes le n=0, soit tu ne lui passes aucun paramètre et ça fonctionnera quand même...
Après, tu trouves u=6000, c'est la valeur de départ du 1er terme, ce que en maths tu écrirais $u_0=6000$
Et la mention-clé pour répondre à la question posée c'est la ligne suivante :
while u<7400:
que je traduis par
Tant que u est strictement inférieur à 7400 :
ce qui signifie que les calculs qui suivent cette instruction s'exécuteront tant que u sera strictement inférieur à 7400...
Et donc s'arrêteront dès que :
   -  Un >7400 ?
   -  Un ≥ 7400 ?
   -  Un ≤ 7400

Et que sont ces fameux calculs ?
Mais seulement u=1.02*u...
Ce que en maths on écrirait : $u_n=1,02u_{n-1}$
Problème : ta ligne u=1,02u est destinée à Python... et en Python 1,02 c'est le couple (1,2) et non le nombre décimal 1,02...
Les instructions de programmation sont en anglais et en en anglais le séparateur décimal c'est le point .
Donc on écrit u=1.02u...
Ensuite Python ne "sait" pas quoi faire de 1.02u, Python ne "sait" pas que 1.02u n'est rien d'autre que $1.02 \times u$.
Donc, écris :1.02*u
Et alors la ligne u = 1.02u*u dira à Python de prendre la valeur de u, de la multiplier par 1.02, et de ranger cette nouvelle valeur dans u, ce qui la traduction informatique de :
u_n=1.02*u_{n-1}$

Donc maintenant tu peux suivre ce que fait la fonction :
n=0
u =6000
Tant que u <7400:
     faire :
     u = u * 1.02  (ici  donc 6400 * 1.02 --> u vaut donc 6528
    et on augmente de 1 l'indice n : n=n+1 (qui ici passe donc à 1)

et le programme revient à Tant que et vérifie :
     u < 7400 ? Réponse : oui (puisque u=6528), donc on continue :
     u = 1.02*6528 (donc u = 6658.56)
     n=n+1 (donc n=2)

et le programme revient à Tant que et vérifie :
     u < 7400 ? Réponse : oui (puisque u=6658.56), donc on continue :
     u = 1.02*6658.56 (donc u = 6791.7312)
     n=n+1 (donc n=3)

et le programme revient à Tant que et vérifie :
     u < 7400 ? Réponse : oui (puisque u=6658.56), donc on continue :
     u = 1.02*6791.7312 (donc u = 6927.565824)
     n=n+1 (donc n=4)

Quand la boucle va-t-elle s'arrêter ? Réponse :

Cette fonction  permet de déterminer :
- 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 ?
Réponse : ?

Quand les calculs s'arrêtent, on rencontre le return... Mais return n et non return (n) .
return n te renvoie donc la valeur de n.
Mais il faut la récupérer ou l'afficher...

Je te mets en spoiler les deux variantes de ton script et ce que la fonction te renvoie si je l'appelle.
N-B  :
le dièse # introduit un commentaire qui est ignoré par Python. Il ne sert à rien dans le programme.

1.  Avec passage du paramètre n

def suite(n):
    u=6000
    while u<7400 :
        u=1.02*u
        n=n+1
    return n,u    # je demande le renvoi des 2 valeurs n et u (la virgule précise : dans cet ordre)

print (suite(0)) # Là, j'appelle la fonction suite(n) en lui transmetttant la valeur 0 pour n et demande l'affichage, dans cet ordre, des valeurs renvoyées par la fonction...

 

Et j'obtiens  pour n et u
(11, 7460.245850367915)
Si je limite à return n, l'affichage est seulement 11

2.  Sans passage du paramètre n

def suite():
    n=0
    u=6000
    while u<7400 :
        u=1.02*u
        n=n+1
    return n,u    # je demande le renvoi des 2 valeurs n et u (la virgule précise : dans cet ordre)

print (suite()) #  Là, j'appelle la fonction et demande l'affichage, dans cet ordre,  des valeurs renvoyées par la fonction...
 

Et j'obtiens :
(11, 7460.245850367915)

Si je limite à return n, l'affichage est seulement 11

En principe : def suite(n) ne s'appelle pas "fonction" : il n'y a pas passage du paramètre, c'est une "procédure"...

As-tu tout compris ?

Hors ligne

#3 30-12-2022 12:17:46

maissaben
Invité

Re : suite

Merci beaucoup jai tout compris donc la rep est >= 7400 , se n'est pas moi mes mon prof qui a ecrit le programe ?

#4 30-12-2022 15:36:11

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : suite

RE,

Si c'est ton prof qui a écrit le programme... alors reviens aussi souvent que tu le veux pour poser des questions et insister tant que tu ne seras pas complètement satisfait des réponses !

Ici, il t'a demandé :

Ton prof a écrit :

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 ?

Tu vas donc lui répondre  :
La fonction suite permet de déterminer la plus petite valeur de n telle que Un ≥ 7400.

Il faut faire attention de répondre très précisément à une question posée...

Et puisque la fonction se termine par return n, ce return n permet de répondre :
la fonction suite permet de déterminer la plus petite valeur de n telle que Un.?.
Et la suite est donnée par la ligne while u <7400:

Au passage, tu as vu (en spoiler) que le n renvoyé valait 11...
Or, $1.02^{11}=1,2433743083946522728448$ (en Python, on tape 1.02**11, et pas 1.02^11)
et
$6000 \times 1.02^{11} = 7460,2458503679136370688$
mais si n=10, alors
$6000\times 1.02^{10} = 7313,96651996854278144$
et tu vois que pour
n = 10, u =7313 <7400.
n = 11, u = 7460 >7400
11 est bien la plus petite valeur cherchée.

Avec u =7313,...
u < 7400 est vrai,  c'est pourquoi on reste dans la boucle Tant que u<7400:
avec u = 7460,...
u < 7400 est faux, c'est pourquoi on sort de la boucle  Tant que u<7400:

Et avec u = 7400 très exactement ?
u<7400 est faux ... et la boucle aurait stoppé...

On sort de la boucle au moment où la condition pour faire un tour de plus (u<7400) devient fausse, donc pour u=7400 et plus...
Voilà pourquoi, dès que la valeur de n est assez grande, u devient supérieur ou égal à 7400...

@+

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
vingt et un plus vingt sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums