Python

Retrouver tous les sujets résolus.
Répondre
Moma

Python

Message par Moma » sam. 28 mars 2020 17:56

Bonjour, je ne comprends pas comment programmer cette partie de Python et répondre aux questions, pourriez-vous m'aider.
1. Comment démontrer qu'un quadrilatère est un parallélogramme en calculant des milieux ?
Je pense que pour trouver cela il faut dire que si les diagonales se coupent en leur milieu alors c'est un parallélogramme.
2. En utilisant la fonction milieu, créer un programme qui, à partir des coordonnées de 4 points dans l'ordre, permet de dire si le quadrilatère est un parallélogramme ou non, pensez à utiliser if et else pour cette question et la suivante.

Après plusieurs essais de code dans ma calculatrice, je ne sais pas comment faire.

3. Créer un programme qui à partir des coordonnées de 4 points dans l'ordre permet de dire si le quadrilatère est un losange, un rectangle voir un carré ?

J'ai essayé plusieurs fois pour les questions 2 et 3 mais je ne comprends pas. Merci d'avance.
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: Python

Message par sos-math(21) » dim. 29 mars 2020 09:50

Bonjour,
d'après ton énoncé tu sembles disposer d'une fonction milieu, qui doit ressembler à cela :

Code : Tout sélectionner

def milieu(xA,yA,xB,yB):
    """ renvoie les coordonnées du milieu"""
    xM = (xA+xB) / 2
    yM = (yA+yB) / 2
    return (xM,yM)
Pour la fonction parallélogramme : elle va prendre en argument les 8 coordonnées des 4 points et va calculer le milieu du premier et troisième point (première diagonale) puis le milieu du deuxième et quatrième point (deuxième diagonale).
Il faudra ensuite tester l'égalité des coordonnées de ces deux milieux, mais attention aux erreurs de calcul générées par python qui calcule faux !
Par exemple :

Code : Tout sélectionner

>>> 0.1+0.1+0.1
0.30000000000000004
Car Python utilise une certaine représentation des nombres réels, laquelle ne correspond pas toujours exactement aux nombres réels manipulés en maths.
Il faudra donc éviter le test d'égalité entre deux nombre défini par le symbole == :

Code : Tout sélectionner

>>> 0.1+0.1+0.1 == 0.3
False
et privilégier un test d'écart avec la valeur, par exemple une erreur à \(10^{-10}\) :

Code : Tout sélectionner

>>> abs(0.1+0.1+0.1-0.3)<10**(-10)
True
Commence déjà par construire l'algorithme "à la main" puis on passera au langage Python.
Bon courage
Répondre