Bonjour, j'ai un algorithme en python qui teste si deux vecteurs sont orthogonaux et que je dois modifier au fil des questions.
Voici le programme :
def ortho (x1,y1,x2,y2)
ps=x1*x2-y1*y2
if ps=0
print "oui"
else :
print "non"
Voici les questions auxquelles je n'arrive pas à répondre :
1)Pourquoi est-il impossible d'utiliser les notations (x;y) et (x',y') dans le programme?
2)Trouver les deux erreurs qui se trouvent dans le programme.
3)Modifier cet algorithme pour qu'il donne la norme des deux vecteurs de coordonnées (x1;y1) et (x2;y2), sachant qu'en python, l'exposant se note **.
Par exemple, 3² s'écrira 3**2 et 3 s'écrira 3**0.5.
Pour la question 1, je n'y arrive pas car je ne connais pas le langage python.
Pour la question 2, je dirais que l'une des deux erreurs est : ps=x1*x2-y1*y2 qui devrait être écrit ps=y1*y2-x1-x2.
Pour la question 3, je suis complètement perdue aussi.
C'est pour cela que je vous demande de l'aide, en espérant que mon énoncé soit clair..
Merci d'avance.
CaroA
oui merci, mais j'ai déjà regardé des sites là dessus et si je pose la question, c'est que j'ai besoin d'aide pour comprendre.
y'a qu'à lire le tutorial. tu pousses..
Sous Python, les noms de variables doivent en outre obéir à quelques règles simples :
• Un nom de variable est une séquence de lettres (a -> z , A -> Z) et de chiffres (0 > 9), qui doit toujours commencer par une lettre.
• Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les cédilles, les espaces, les
caractères spéciaux tels que $, #, @, etc. sont interdits, à l'exception du caractère _ (souligné).
Oui je suis d'accord mais cela ne me donne pas la réponse à mon problème puisqu'en l'occurrence, il n'y a aucune lettre accentuée dans le programme, ni de caractères spéciaux. Aussi, pour la question 1, je ne sais toujours pas pourquoi nous ne pouvons pas écrire (x;y) même en ayant lu le tutorial. Enfin, pour trouver la norme de deux vecteurs, je sais qu'il faut utiliser le produit scalaire et donc se servir de .= norme de *norme de * cos(;). Mais ici, il faut le traduire en algorithme, ce qui n'a donc rien à voir avec cela.
OK. Mais donc les deux erreurs de la 2) sont celles de la question 1) (les parenthèses et les points virgules)?
non.
puisque justement les notations (x;y) et (x',y')
ne sont pas employées dans le programme.
la première erreur concerne la formule : ps=x1*x2-y1*y2
le seconde concerne la syntaxe de : if ps=0
Comment ça? On ne peut pas mettre 2 lettres à la suite au début d'une formule?
Et pour la syntaxe de if ps=0 est-ce que c'est parce que la ligne d'en tête d'un bloc d'instructions se termine toujours par ":" ?
tu as remarqué que la ligne if ps=0 doit se terminer par ":"
donc cela fait bien : if ps=0 :
mais ce n'est pas tout. En python, le signe "=" est le signe d'affectation
d'une valeur à une variable, ce n'est pas le signe d'égalité dans
une comparaison ou un test... c'est donc autre chose.
mais le problème c'est que pour la 3) il faut que je rajoute quelque chose pour que cela me donne la norme des vecteurs non?
parce que là il teste l'orthogonalité des deux vecteurs...
c'est bon (y1 à la place de y)
d1... parce qu'il faut bien donner un nom à la variable
qui va contenir la valeur de la norme (ou distance) du vecteur v1
tu peux l'appeler toto = (x1**2+y1**2)**0.5
mais c'est moins parlant comme nom.
oui c'est sûr.. bon donc je vais mettre ca dans mon programme
cela donne alors:
def ortho (x1,y1,x2,y2)
d1=(x1**2+y1**2)**0.5
d2=(x2**2+y2**2)**0.5
print d1 et d2
et ton programme, tu l'appelles alors :..
def norme (x1,y1,x2,y2)
d1=(x1**2+y1**2)**0.5
.....
.......
..
je l'appelle norme mais le nom je le met où?
et après j'ai
def norme (x1,y1,x2,y2)
d1=(x1**2+y1**2)**0.5
d2=(x2**2+y2**2)**0.5
print d1 et d2
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :