Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 17-11-2020 14:37:31

didi78
Membre
Inscription : 17-11-2020
Messages : 2

Python

bonjour, cela fait maintenant 1h que je suis bloquée dessus. Pouvez vous m'aider !

On donne 4 tuples de deux nombres correspondant aux coordonnées dans le plan de 4 points A, B, C et D. Vous écrirez une fonction qui nommée parallélogramme(A, B, C, D) qui retourne un booléen indiquant si ABCD est un parallélogramme.
Pour tester, A(-1, 2), B( 1, 5) , C(7, 4) , D (5, 1) est un parallélogramme,
A(1, 2), B( 2, 5) , C(7, 4) , D (5, 1) n’en est pas un.

Merci!

Hors ligne

#2 17-11-2020 16:30:09

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : Python

Bonjour,

Qu'à tu essayé de faire ?
As-tu commencé à écrire un programme, mais il ne fonctionne pas ?

Si tu ne sais pas du tout par où commencer, il va falloir faire un peu de math :
Quels critères connais-tu pour déterminer si un quadrilatère est un parallélogramme ?


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#3 17-11-2020 16:52:09

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Python

Bonjour,

Bah ! 1 h, c'est peu !... ^_^
Déjà
- si je prends un tuple A=(-1,2)représentant les coordonnées de A
- je peux accéder à l'abscisse par x=A[0], et à l'ordonnée par y=a[1]

Tu vas appeler ta fonction (par exemple) EstunParallelogramme.
Tu la notes ainsi
def EstunParallelogramme (A,B,C,D):

Ensuite, ABCD est un parallélogramme $\Longleftrightarrow$  $\overrightarrow{AB}=\overrightarrow{DC}$
(c'est le plus et le plus rapide et, de plus, moi j'aime les vecteurs)
Tu as donc besoin à partir des coordonnées de A, B, C, D - que tu vas passer à ta fonction - de calculer les coordonnées des deux vecteurs $\overrightarrow{AB}$ et $\overrightarrow{DC}$
Par exemple si je note $xAB$, la coordonnée horizontale et $yAB$ la coordonnée verticale du vecteur $\overrightarrow{AB}$
(Tu peux les appeler autrement pourvu que tu t'y retrouves...)
On calcule ainsi : $xAB =B[0]-A[0]$  et $yAB=B[1]-A[1]$
Petit rappel au cas où :
(abscisse de l'extrémité - abscisse de l'origine  et  (ordonnée de l'extrémité - ordonnée de l'origine

Ensuite comment savoir si les deux vecteurs sont égaux  et retourner un booleen (VRAI /FAUX) ?
Simple :
Si $xAB==xDC$  et   $yAB==yDC$ (alors):
     retourne  True
Sinon:
   retourne False

Et tu peux appeler ta fonction ainsi :
print(EstunParallelogramme((-1,2),(1,5),(7,4),(5,1)))

Et s'affichera alors pour cet exemple : True
J'ai testé les eux exemples l'un après l'autre :
print(EstunParallelogramme((-1,2),(1,5),(7,4),(5,1)))
print(EstunParallelogramme((1,2),(2,5),(7,4),(5,1)))
Et j'obtiens :
True
False

Donc, ça fonctionne !

Mets de l'ordre dans tout ça, traduis en Python - et n'oublie pas l'indentation (décalages depuis la gauche)

@+

[EDIT] Je viens de voir : plus que grillé par tibo, carbonisé ! Désolé, si j'en dis trop, mais vu leur niveau, je doute qu'ils (elles) aient appris à extraire les composants d'un tuple...

Dernière modification par yoshi (17-11-2020 17:05:24)


Arx Tarpeia Capitoli proxima...

En ligne

#4 17-11-2020 19:45:49

didi78
Membre
Inscription : 17-11-2020
Messages : 2

Re : Python

Merci  beaucoup !! je comprend beaucoup mieux!

Hors ligne

#5 17-11-2020 21:27:25

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Python

Bonsoir,

De plus, comme te le suggère tibo, possédant les coordonnées dans ta fonction, tu peux aussi utiliser l'une des 3 propriétés héritées des classes de 4e/3e pour voir si les 4 points forment un parallélogramme ou pas...

On ne te fait rien faire d'autre que des maths agrémentées à la sauce Python...
Donc ta réflexion doit commencer par envisager les outils mathématiques que tu vas devoir utiliser....

@+


Arx Tarpeia Capitoli proxima...

En ligne

Pied de page des forums