Bonjour,
voici donc un exercice que j'ai à faire :
PARTIE A
On considère le script Python de la fonction f donnée ci-dessous. On rappelle qu'en langage Python la fonction sqrt désigne la fonction racine carrée
il est noté :
from math import*
def f(C1,C2):
d=0
for i in range (3)
d=d+(C2[i]-C1[i])**2
d=sqrt(d)
return d
1) Que renvoie l'appel f{[1,7,3].[3,13,6])?
2) Quelle peut-être l'utilité de cette fonction f en géométrie repérée de l'espace ?
Réponse :
1) je dirai à un point ou calculer le produit scalaire, j'avoue que j'ai du mal avec Python nous ne le travaillons pas en cours
2) Je dirai calculer la longueur
PARTIE B :
*** un seul exercice par sujet **
la partie B n'a rigoureusement aucun rapport avec la partie A
déplacée là : Equation de plan [B] .
MERCI
Re,
Oui l'année dernière j'avais installé edupython sur mon ordinateur pour 2 exercices uniquement. Voici ce que j'ai fait
from lycee import *
def f(C1,C2):
d=0
for i in range(3):
d=d+(C2[i]-C1[i])**2
d=sqrt(d)
return d
dans la console j'ai mis :
f{[1,7,3].[3,13,6]} et ça me met :
IndentationError: unexpected indent
donc..... je ne sais pas, je ne connais presque rien en Python
MERCI
Bonjour,
tu as copier-collé ton code ou tu l'as retapé ici ??
l'appel c'est
f([1,7,3],[3,13,6])
^ ^ ^
| virgule |
+----------------+--- parenthèses, pas accolades
Re,
j'ai retapé et vérifié
je viens de faire ce que tu as mis et ça marche, je ne comprend pas car pour moi j'avais fait ça soit
résultat 7.0
ce résultat correspond à quoi ?
Merci
>>> def f([1,7,3],[3,13,6])
File "<interactive input>", line 1
def f([1,7,3],[3,13,6])
^
SyntaxError: invalid syntax
c'est ce que j'avais fait
"def" permet de définir la fonction, pas de l'appeler
pour l'appeler, comme mathafou a dit, tu tapes le nom de la fonction et les arguments (en respectant bien la syntaxe des parenthèses et virgules)
A quoi ce résultat correspond ? c'est à toi de nous le dire en regardant ta fonction
Il y a une boucle for qui tourne 3 fois, qu'est-ce qu'on fait dans cette boucle ?
y a pas de "def" dans ce que j'ai écrit !!
dans le fichier tu tapes ton code ce qui crée (déf = définit) la fonction f et ne fait rien d'autre
dans la ligne de commande tu appelles, invoques, ta fonction, provoques l'exécution de cette fonction, par juste rien que f([etc])
Re,
mathafou : j'ai trouvé comme toi en bas 7.0
mais je ne comprend pas ce que je dois répondre
1) je répond 7.0
2) mais j'avoue que je n'ai pas compris ce programme
pourquoi 3 chiffres pour C1 et 3 pour C2 (enfin c'est ce que je pense)
le résultat est-ce les valeurs de x
je ne sais pas et je n'y comprend rien
MERCI de m'expliquer un peu ce qu'est -ce programme
pourquoi 3 chiffres pour C1 et 3 pour C2
c'est 3 nombres, pas trois chiffres
"en géométrie repérée de l'espace"
on est dans l'espace, chaque point a 3 coordonnées...
Nelcar essaie de voir la valeur qu'aura d à la fin du programme. Peut-être que ça t'éclairera sur la fonction
Sachant que comme a dit mathafou, C1 et C2 sont deux points de l'espace, donc ils ont 3 coordonnées. En programmation, ce sont des variables représentées comme un vecteur a 3 coordonnées : C1[0], C1[1] et C1[2] (en python, on va de 0 à 2 et non pas de 1 à 3, c'est comme ça)
Re,
OK donc ça veut dire qu'il y a deux points
donc on a deux vecteurs C1 et C2
dans la console c'est mis 7.0
mais je n'y comprend pas plus.
comme il est noté :
d=d+(C2[i]-C1[i])**2
en regardant mieux je crois que j'ai trouvé un truc mais à voir si c'est ça
j'ai fait C2-C1=2;6;3
2²+6²+3²=49 donc49=7
dans la console j'avais 7 ? et pourquoi 0 ?
Merci de m'expliquer (je dirai que ça donne la longueur ?
MERCI
oui, dans la boucle for, on exécute l'instruction
d = d+(C2[i]-C1[i])**2
Tu as compris le principe, c'est bien la longueur (la longueur de quoi?) mais il faut le généraliser pour tout point C1 et C2
Re,
la longueur de C1-C3
Mais je ne comprend pas :
d = d+(C2[i]-C1[i])**2
je viens de voir au ** c'est pour la racine carrée OK
à la fin de la boucle for, on aura peut-être fait pour les 3 chiffres de C1 et C2 , enfin je dis ça mais je n'en sais rien.
MERCI
non, ** c'est pour élever à une puissance
(C2[i]-C1[i])**2 c'est (C2[i]-C1[i])^2
la boucle for fait prendre successivement à i les valeurs 0, 1, 2 (c'est l'instruction range(3))
Si on répète l'instruction d = d+(C2[i]-C1[i])**2 pour i valant 0, puis 1, puis 2, qu'est-ce qu'on obtient ?
Remarque aussi qu'à la fin, on a d=sqrt(d)
Bonjour,
Zormuche : tu mets :
"
Si on répète l'instruction d = d+(C2[i]-C1[i])**2 pour i valant 0, puis 1, puis 2, qu'est-ce qu'on obtient ?"
si i vaut 0 on aurait (si j'ai bien compris)
3-1=2 2²=4
si i vaut 1
13-7=6 6²=36
si i vaut 2
6-3=3 3²=9
MERCI
Oui mais le but est de faire ça non pas avec des vraies valeurs mais avec C1 et C2
Dans chaque itération de la boucle, on ajoute à d la valeur (C1[i]-C1[i])^2
Donc après les 3 itérations, qu'est-ce qu'on a fait au total sur d ?
Re,
on a calculé la longueur au carré et qu'après il y a la fonction racine carrée
je suis perdue. Je pensais avoir compris mais non
MERCI
Oui parce que justement (C2[0]-C2[0])^2 + (C2[1]-C1[1])^2 + (C2[2]-C1[2])^2, c'est la formule de la distance au carré de C1 à C2
Re,
oui d'accord le rang 3 fait l'ensemble de (C2[0]-C2[0])^2 + (C2[1]-C1[1])^2 + (C2[2]-C1[2])^2
pour voir si j'ai compris chaque point n'avait que deux coordonnées il n'y aurait eu que C2[0]-C2[0])^2 + (C2[1]-C1[1])^2
donc même avec 3 coordonnées on peut mettre plus de 2 points et comment faire pour avoir la représentation graphique ?
MERCI
ta fonction est faite pour prendre deux vecteurs (C1 et C2) telle qu'elle est définie
de plus, l'instruction range(3) va explorer au moins les trois premières valeurs de C1 et C2
Si tu mets un troisième vecteur, il y aura une erreur car la fonction ne sait pas ce que ça veut dire
Si tu mets des vecteurs avec moins de 3 coordonnées, il y aura une erreur, car la fonction ne saura pas faire l'instruction pour i=2
Si tu mets des vecteurs de plus de 3 coordonnées, il n'y aura pas d'erreur, mais la fonction les traitera comme des vecteurs à 3 coordonnées (avec leurs 3 premières coordonnées)
Quant à la représentation graphique, ce n'est pas ce qui est demandé ici, c'est plus compliqué
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :