Aller au contenu

tp python 1ère


Clemmellian

Messages recommandés

  • E-Bahut

Tu dois définir les coordonnées du point (2 nombres réels) et es coordonnées du vecteur normal à la droite dont tu cherches l'équation.

Dans ton cours, tu as appris qu'une équation cartésienne de la droite passant par A(xA;yA) et de vecteur normal vec(n)(a;b) est de la forme ax+by+c=0. 

Je te laisse calculer c en fonction de a, b, xA et yA, c'est du cours.

Dans me script Python :

tu entres les réels a, b, xA et yA par float(input(....),

L'affichage de l'équation de la droite sera fait par print(a,''x",b,"y",c)

et l'affaire est jouée.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Pour la programmation en Python, tu disposes d'exemples dans ton livre de mathématiques et d'explications dans une foultitude de forums dédiés à l'apprentissage de ce langage. Je peux corriger, compléter ce que tu écris, mais je n'écrirai pas le programme à ta place. À toi de travailler et de montrer ce que tu as fait en le saisissant, pas en pièce jointe.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

L'expression dans le if n'est pas correcte, tu n'as certainement pas compilé ce script qui produit une erreur de syntaxe :

*** Remote Interpreter Reinitialized ***
  File "<module1>", line 3
    if listeu=[0,0]:
             ^
SyntaxError: invalid syntax

>>> 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Comme te le dit le moindre tutoriel Python, le test d'égalité se fait avec ==, donc tu dois écrire  à cet endroit if listeu==[0,0]:

Mais tu es loin d'avoir résolu ton problème Si tu commençais par écrire en bon français (ou en langage algorithmique) ce que ton programme doit faire ?

Par ailleurs, ton énoncé t'impose une introduction de données par des listes ? Il me semble que pzorba te suggérait de les introduire une par une. De toute façon, à mon avis, vu que le script doit pouvoir s'adapter à différents cas, il faut gérer l'introduction des données, pas les introduire au départ dans ton programme comme tu le fais.

Lien vers le commentaire
Partager sur d’autres sites

Je ne sais pas si il faut utiliser des listes

Mais en français, je veux qu'avec mon programme je veux déterminer une équation cartésienne sans oublier de dire à l'utilisateur qu'il n'y a pas de droite si il saisit un vecteur nul.

D'abord, on sait qu'un vecteur normal c'est :n (a , b)
Et qu'une équation cartésienne s'écrit ax + by + c = 0
Dans notre cas, on connait a et b : 
On remplace dans l'equation et pour trouver c on prend les coordonnées du point A.

 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Bonjour,

1) as tu à ta disposition le langage PYTHON pour tester, essayer , vérifier tes scripts ? cela me semble indispensable et en plus, c'est la partie la plus "fun" : voir si ça "marche" 🤓.

2) si tu avais testé ton script, tu aurais vite compris qu'il n'était pas opérationnel (pas besoin de nous pour le constater).

3) Pzorba t'avait déjà indiqué quelques erreurs dans ton script, en particulier ce "return" qui n'a rien à faire là et auquel tu attribues un rôle (une fonction) qui n'est pas la bonne. Si tu veux afficher un message (une chaine de caractères), tu peux utiliser la fonction print().

4)

il y a 52 minutes, Clemmellian a dit :

Oui mais la première ligne, je mets les listes:

listeu[2,-3]
listeA[1,-2]

Si tu décides de saisir les données à traiter DANS ton script (pourquoi pas... c'est une option !!), encore faut-il le faire correctement.... ce qui n'est pas le cas ci dessus.

listeu est la liste qui contient les coordonnées du vecteur normal n donc on écrit : listeu=[2,-3]

idem pour l'autre liste !

5) tu fais un calcul (qui me semble incohérent :rolleyes:) et tu affectes  le résultat à une variable que tu appelles test mais quelle est la nature de ce résultat (il montre quoi ?) et il sert à quoi ?? si tu réponds à cette question tu vas voir que ce calcul ne rime à rien.

Citation

else:
    test=(listeu[0]*listeA[0]+listeu[1]*listeA[1])

6) Essayes de revoir tout cela, teste le avec python et si problème, tu fais un copié/collé de ton script (c'est du simple texte !!) et tu le colles dans ton prochain message, pour qu'on puise le tester et te dire où ça coince 😢.

 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut
Citation

Mais le a correpond à 2 ou -3 dans ce cas ?

Cela c'est du COURS !!

N'as tu pas écrit :

Citation

D'abord, on sait qu'un vecteur normal c'est :n (a , b)
Et qu'une équation cartésienne s'écrit ax + by + c = 0
Dans notre cas, on connait a et b : 
On remplace dans l'equation et pour trouver c on prend les coordonnées du point A.

alors... applique !

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut
Citation

Je ne sais pas le faire en langage python 

🤨 Il te faut mettre les mains dans le cambouis  et essayer avec les bribes dont tu disposes...

Les bribes (certes un peu pourries) mais c'est un début !!!!!

Citation

listeu[2,-3]
listeA[1,-2]
if listeu=[0,0]:
    return("aucune équation de droite possible")
else:
    test=(listeu[0]*listeA[0]+listeu[1]*listeA[1])

première rectification :

Citation

listeu=[2,-3]
listeA=[1,-2]

également :

Citation

 le test d'égalité se fait avec ==, donc tu dois écrire  à cet endroit if listeu==[0,0]:

 

et encore :

Citation

Pzorba t'avait déjà indiqué quelques erreurs dans ton script, en particulier ce "return" qui n'a rien à faire là et auquel tu attribues un rôle (une fonction) qui n'est pas la bonne. Si tu veux afficher un message (une chaine de caractères), tu peux utiliser la fonction print().

allez lance toi et propose un script....

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Il neige.

Un exemple (à partir de ce que tu avais fait..... (moi je n'aurais pas eu recours à des listes ! pour 4 données c'est sans intérêt mais si tu  y tiens : 👩‍🌾)

# listes des données à traiter (c'est un peu inutile ici mais comme tu veux des listes....)
listeA=[1,-2] # coordonnées du point A
listen=[2,-3] # coordonnées du VECTEUR normal n


# l'équation de la droite passant par A(xA;yA) dont n(a,b) est un vecteur normal
# est de la forme ax + by + c = 0
print("a coefficient de x :", listen[0])
print("b coefficient de y :", "à toi de trouver !!!!!!")

# calcul de c
c= "tu poses ce calcul comme si tu le faisais à la main ;-)"
print("c = ",c)

ATTENTION : pour voir la totalité du message , il faut cliquer sur le bouton Expand

il y a 12 minutes, Clemmellian a dit :

D'accord

Donc

listeu==[2,-3] Si tu massacres ce que j'ai écrit....
listeA==[1,-2] Idem = et == ont deux fonctions différentes.
 if listeu==[0,0]:
     return("aucune équation de droite possible") je t'ai déjà indiqué par quoi remplacer cette instruction inopportune 😢

Mince je me suis trompée Alors CORRIGE

 

 

Au fait, depuis le temps que tu  tournes autour de cette équation, tu l'as trouvée ?

Qu'as tu trouvé ??

Lien vers le commentaire
Partager sur d’autres sites

Mais on m'a dit de mettre == donc je ne comprends plus la

Ah d'

d'accord, je viens de comprendre la différence

listen=[2,-3]
listeA=[1,-2]
 if listen==[0,0]:
     print("aucune équation de droite possible")
 

print("a coefficient de x :", listen[0])
print("b coefficient de y :", "listen[1]
# calcul de c
c= "tu poses ce calcul comme si tu le faisais à la main ;-)"
print("c = ",c) 

En mettant les valeurs de point A ?

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

1)

a= 5 est une affectation : on donne (affecte ) à la variable notée a la valeur 5

a== 5 est une comparaison : on vérifie si la variable a est égale à 5

2) Alors (à la main ) qu'as tu trouvé comme équation de la droite qui passe par A(1;-2) et a le vecteur(2;-3) comme vecteur normal (orthogonal, "perpendiculaire") ?

3) Puisque tu as Thonny, as tu fait un copié/collé du programme que je t'ai envoyé dans son éditeur (tu n'as même pas à le ressaisir !!)? l'as tu fait tourner (éxécuter, run...) ? qu'as tu obtenu  ? Fais en  un copié /collé de la console (shell, interpréteur,...) et mets cela dans ton prochain message.

4) "En mettant les valeurs de point A ?" oui , les coordonnées du point A permettent de déterminer c quand on connait a et b.

Lien vers le commentaire
Partager sur d’autres sites

2) A la main :

ax + by + c = 0 donc 2x - 3y + c = 0 

Donc on utilise les coordonnées de A(1, -2)

2*1 - 3*(-2) + c = 0
8 + c = 0
Donc, c= -8

# listes des données à traiter (c'est un peu inutile ici mais comme tu veux des listes....)
listeA=[1,-2] # coordonnées du point A
listen=[2,-3] # coordonnées du VECTEUR normal n


# l'équation de la droite passant par A(xA;yA) dont n(a,b) est un vecteur normal
# est de la forme ax + by + c = 0
print("a coefficient de x :", listen[0])
print("b coefficient de y :", listen[1])

# calcul de c
c= (listen[0]*listeA[0]+listen[1]*listeA[1])
print("c = ",c)

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut
Citation

2) A la main :

ax + by + c = 0 donc 2x - 3y + c = 0 

Donc on utilise les coordonnées de A(1, -2)

2*1 - 3*(-2) + c = 0
8 + c = 0
Donc, c= -8

1) OUI.

Donc les coefficients a et b de l'équation ax+by +c = 0 sont tout simplement les coordonnées du vecteur normal.

Pour déterminer c un calcul est nécessaire !

La droite passe par le point A (xA; yA) donc les coordonnées de A "vérifient " l'équation de la droite dont on connait les coefficients a et b.

a*xA + b*yA +c = 0 relation où la seule inconnue est...c !

c= - ( a*xA + b*yA)

Si j'applique cette formule c = -(2*1 - 3*(-2)) = - (2+6) = -8  ouf ! je trouve comme toi.

Le calcul que tu as fait directement avec les valeurs, je l'ai "formalisé... pour avoir la "formule" qui donne c.

Essaye d'utiliser cette "formule" dans le script  python....

2) Tu ne m'as pas envoyé ce que produit mon script mais le script lui-même !!!

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...
spam filtering
spam filtering