Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Entraide (collège-lycée)
- » Python
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- yoshi
- 07-12-2020 19:06:46
Re,
C'est bien...
Bon, bin comme ça, tu pourras voir si c'est conforme.
@+
- yoshi
- 07-12-2020 18:34:00
Re,
Ce morceau d'image, tu l'as déjà expédié post #4 et suivants.
Ce qui m'intéresse, c'est ce qui dit l'énoncé sur ce que tu dois faire avec les vitesses...
Je n’avais pas vraiment fais le vôtre et même quand je reproduit je n’arrive pas à programmer
Là tu m'inquiètes...
En quoi ton code est-il différent ? Ce que tu avais fait fonctionne ? Tu obtiens bien l'affichage de la liste des distances ?
Montre-moi ce code.
Qu'est-ce que tu appelles ne pas arriver à programmer ?
Il y a juste à recopier et indenter correctement les lignes (décalage depuis la gauche)
Voilà le code que j'ai écrit et posté :
https://www.cjoint.com/c/JLhrsr8mj7s
Tu le charges, et tu l'ouvres avec Python, tu le lances, il fonctionne...
(Je viens d'essayer sur plusieurs sites en ligne : je l'ai copié depuis mon éditeur Python, puis collé dans la fenêtre pour l'essai... Ça fonctionne aussi sans pb)
@+
[EDIT]
Voilà ce que j'avais dit de faire (en langage courant qu'on appelle du pseudo code)
fonction x(t)
si x strictement inférieur 8
retourner 3t²+9t+8
sinon
retourner 51t-139
fonction pos(t)
déclarer une liste l, vide
Pour i allant de 1 à 1+t
stocker dans la liste l le résultat de l'appel x(i) ) à la fonction x(t)
retourner l
Affiche à l'écran le résultat de l'appel de la fonction pos(t) pour t=30 (par ex.)
Avec les vitesses, cela devient :
fonction v(t)
si x strictement inférieur 8
retourner 6t+9
sinon
retourner 51
fonction vit(t)
déclarer une liste l, vide
Pour i allant de 1 à 1+t
stocker dans la liste l le résultat (multiplié par 3.6) de l'appel v(i) à la fonction v(t)
retourner l
Affiche à l'écran le résultat de l'appel de la fonction vi(t) pour t=30 (par ex.)
- Lisou30000
- 07-12-2020 18:15:03
Merci beaucoup j’ai tout réussi !!
- Lisou30000
- 07-12-2020 18:12:21
J’ai réussi
- Lisou30000
- 07-12-2020 18:10:10
https://www.cjoint.com/c/JLhrjawiPD2
Je n’avais pas vraiment fais le vôtre et même quand je reproduit je n’arrive pas à programmer
- yoshi
- 07-12-2020 17:58:35
Ave,
Comment envoyer une photo ?
Mais comme je te l'ai écrit au post #3 :
1. Tu te connectes à https://www.cjoint.com, tu suis les instructions, tu déposes (upload) ton document, tu récupères le lien qu'on te donne et le mets sans ton prochain post : on pourra ainsi consulter ta photo.
2. Si tu ne t'en sors pas (tu serais bien la première), va sur :https://www.zupimages.net/ et donne-nous le code ensuite...
Je me demande si vraiment tu as mis en place correctement x(t) et pos(t)...
Ton code est-il conforme au mien :
def x(t):
if t<8:
return 3*t**2+9*t+8
else:
return 51*t-139
def pos(t):
l=[]
for i in range(1,t+1):
l.append(x(i))
return l
print(pos(30)
Si oui, je ne vois pas ou est le problème..
Dans v(t)
si t<8
retourne 6*t+9
sinon
retourne 51
Si t >7 pas de calculs à faire, la vitesse est constante et égale à 51m/s, elle ne dépend plus de la valeur de t...
@+
- Devoir
- 07-12-2020 17:52:00
Lorsque dans ma première fonction je renvoie
def v(t):
l=[]
if 0<=t<=7:
l.append ((6*(t)+9)*3,6))
return l
else:
return l.append(51*3,6)
Cela ne me renvoie rien
def vit(t):
l=[]
for i in range (t+1):
l.append(v(i))
return l
- Devoir
- 07-12-2020 17:48:04
Oui bien sûr mais comment envoyer une photo?
je n’ai pas bien compris cette fois ci
- yoshi
- 07-12-2020 17:39:04
RE,
C’est comme dans x(t) où de je renvoyais (51*(t)-139) pour les valeurs supérieure à 7 l’orque je calculais la position.
oui.
Si t>8 la dérivée est celle de 51t-139 et c'est une constante : (51t-139)' = 51.
A partir de t=8, la voiture roule à une vitesse constante de 51 m/s et n'accélère plus..
dans mon énoncé il faut que j’envoie 51
Tu avais écrit que tu devais retourner des km/h, parce que 51 c'est 51 m/s soit 183.6 km/h...
Je peux voir ce morceau d'énoncé ?
Selon ce qu'on te demande,
* soit tu renvoies ta vitesse avec conversion en km/h : return v*3.6
* soit tu la renvoies telle qu'après calcul et à la récupération dans la boucle, tu la convertis avant stockage.
En 2 lignes :
vitesse = v(i)*3.6
l.append(vitesse)
En une seule :
l.append(v(i)*3.6)
- Dessus
- 07-12-2020 17:26:18
C’est comme dans x(t) où de je renvoyais (51*(t)-139) pour les valeurs supérieure à 7 l’orque je calculais la position.
- Devoir
- 07-12-2020 17:24:16
J’ai compris mais quand t>7 qu’elle fonction dois- je écrire car dans mon énoncé il faut que j’envoie 51
- yoshi
- 07-12-2020 17:08:26
Je viens de te répondre, j'avais édité mon post #19
J'ai été un plus "bavard" dans l'affichage :
Liste des distances parcourues :
[8, 20, 38, 62, 92, 128, 170, 218, 269, 320, 371, 422, 473, 524, 575, 626, 677, 728, 779, 830, 881, 932, 983, 1034, 1085, 1136, 1187, 1238, 1289, 1340, 1391]Liste des vitesses correspondantes :
[32.4, 54.0, 75.6, 97.2, 118.8, 140.4, 162.0, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6, 183.6]
Je viens de retester.
Si tantôt tu renvoies un nombre, tantôt une liste à un élément, voilà à quoi ressemble l'affichage de la liste des vitesses :
[32.4, 54.0, 75.6, 97.2, 118.8, 140.4, 162.0, 183.6, [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6], [183.6]]
Des nombres, puis des listes à un élément, toujours la même d'ailleurs..
Tu vois la différence ?
- Dessus
- 07-12-2020 17:00:47
def v(t) marche à présent mais pas le second
- yoshi
- 07-12-2020 16:43:22
Bonsoir,
Je vais tester, mais déjà commence par remplacer tous tes 3,6 par 3.6 la virgule décimale en Python, c'est un point...
@+
[EDIT]
Sans la suite de l'énoncé, tu m'obliges à jouer aux devinettes... M'enfin, j'ai vu quand même
Pour rire un peu, je parie qu'on doit trouver les mêmes questions avec l'accélération...
C'est la même astuce qu'avec x(t) et pos(t), sauf que là :
def v(t): (def avec une minuscule n !)
qui est une fonction qui calcule une vitesse instantanée à l'instant t selon que t est strictement inférieur à 8 (donc inférieur ou égal à 7) ou pas, et retourne cette vitesse .
def vit(t): qui va demander à v(t) de calculer la vitesse correspondant à un temps i, la récupère et la stocke dans la liste l
Ta fonction def v(t) fonctionne mais mal :
* si t<8, elle retourne une vitesse en km/h
* sinon, elle retourne une liste réduite à un élément, la vitesse 51*3.6
Comment veux-tu que Python y "retrouve ses petits" ?
Le stockage des vitesses dans une liste c'est le boulot de vit(t), le boulot de v(t) est, lui, de calculer la vitesse à un instant t (passé par le paramètre i ) et de la renvoyer à vit(t) pour qu'elle soit stockée par la boucle au fur et à mesure de son avancement...
Pigé, cette fois ?
Errare humanum est sed perseverare diabolicum ! ;-)
@+
- Dessus
- 07-12-2020 15:55:18
je tape donc:
Def v(t):
l=[]
if 0<=t<=7:
l.append ((6*(t)+9)*3,6))
return l
else:
return (51*3,6)
def vit(t):
l=[]
for i in range (t+1):
l.append(v(i))
return l
Mais on me signale que append dois avoir deux valeurs.







