Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
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é :
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
Pages : 1







