IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Exo parallelogramme python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut Exo parallelogramme python
    Bonjour j'ai besoin d'aide pour cette exo voici l'énoncé:
    Écrivez une fonction parallelogramme qui reçoit quatre points du plan en paramètres et calcule le périmètre du parallélogramme correspondant. Les points (x1,y1), (x2,y2), (x3,y3) et (x4,y4) correspondent au coin supérieur gauche, au coin supérieur droit, au coin inférieur droit et au coin inférieur gauche. La fonction renverra le résultat en cm si les côtés sont biens égaux deux à deux, et renverra None si ce n'est pas le cas et False si les éléments non valides.
    j'ai compris très vaguement ce que je ne comprend pas c'est comment pouvoir donner deux chiffre pour p1 sachant que c'est un paramètre et non deux

    voila ce que j'ai fait pour l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def parallelogramme((0, 0), (0, 1), (1, 1), (1, 0)):
        x1,y1=p1
        x2,y2=p2
        x3,y3=p3
        x4,y4=p4
    voici en piece jointe ce que je comprend pas au cas où si je me suis mal exprimer
    Nom : df.PNG
Affichages : 556
Taille : 99,0 Ko
      0  0

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 658
    Points : 1 158
    Points
    1 158
    Par défaut
    Bonjour,

    p1, le premier point, est défini comme un tuple. Vous pouvez faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parallelogramme((0, 0), (0, 1), (1, 1), (1, 0))
    Ou encore faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p1 = (0, 0)
    parallelogramme(p1, (0, 1), (1, 1), (1, 0))
    Ce qui donne la même chose. Mais on voit tout de suite que fournir un argument générique p en lieu et place d'une valeur, est plus flexible.

    Pour revenir sur votre code, vous n'y êtes pas loin. Vous extrayiez x1, y1 du point p1, mais vous ne fournissez pas p1 en argument de votre fonction. Vous devriez avoir quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def parallelogramme(p1, p2, p3, p4):
        x1, y1 = p1
        x2, y2 = p2
        x3, y3 = p3
        x4, y4 = p4
        ...
    J
      0  0

  3. #3
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    ensuite je doit faire un calcul coordonnées des vecteurs c'est bien ça et vérifier si les coordonnées de l'un sont égales aux coordonnées de l'autre, et si ils sont égaux c'est un parallélogramme ?
      0  0

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 658
    Points : 1 158
    Points
    1 158
    Par défaut
    Tout à fait, si vous reprenez l'intitulé, vous devez écrire une fonction qui renvoie:
    • False si les coordonnées ne forment pas un parallélogramme
    • None si les données sont incorrectes
    • L'aire sinon


    Il vous faut donc bien tester si les points forment un parallélogramme. Comme tout le monde le sait, un parallélogramme à quatre côtés, dont les opposés sont parallèles. Personnellement, je vérifierais que les côtés opposés sont de même longueur.

    Laissez de côté le premier point (les données sont valides) pour vous concentrer sur les deux autres.

    J
      0  0

  5. #5
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    regardez ce que j'ai fait je suis coincé et je ne sais pas si c'est juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AB=(x2-x1),(y2-y1)
    DC=(x3-x4),(y3-y4)
    if AB == DC:
      0  0

  6. #6
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 658
    Points : 1 158
    Points
    1 158
    Par défaut
    Vous pouvez le vérifier en le testant. Pourquoi écrire AB=(x2-x1),(y2-y1)?
      0  0

  7. #7
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    ok je viens de comprendre je vais laisser le True pour plus tard d'abord je fait le false ensuite pour le none j'ai pas compris ce qu'il veut dire par les données incorrectes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    p1=(1,6)
    p2=(5,6)
    p3=(4,1)
    p4=(8,1)
    def parallelogramme(p1,p2,p3,p4):
        x1,y1=p1
        x2,y2=p2
        x3,y3=p3
        x4,y4=p4
        if x1-y1!=x3-y3 and x2-y2!=x4-y4:
            print False
      0  0

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par amina3020- Voir le message
    je pense avoir trouver mais je suis bloqué pour la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if x1-y1==x3-y3 and x2-y2==x4-y4:
    Si vous cherchez à savoir si la longueur des côtés opposés est égale, il va falloir chercher un peu ce que signifie "longueur" pour pouvoir la calculer entre 2 points dont on connait les coordonnées...
    Cà c'est juste des maths qui n'ont rien à voir avec la programmation Python.

    Puis vous essayez de faire les calculs sur une feuille de papier pour voir si çà marche avant de vous aventurer à code et vous testez votre code avec Python pour vérifier qu'il fonctionne correctement.

    Tant que vous n'avez pas fait ce minimum de boulot, vous n'avez rien foutu: pas la peine de poster le code que vous avez fait puisque vous ne savez même pas ce que vous voulez coder... en espérant qu'on fasse le boulot à votre place.

    - W
      0  0

  9. #9
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 669
    Points
    6 669
    Par défaut
    Citation Envoyé par Julien N Voir le message
    • False si les coordonnées ne forment pas un parallélogramme
    • None si les données sont incorrectes
    C'est plutôt l'inverse.


    @amina3020-: prend un papier à carreaux fait un repère orthonormé et un segment de droite et détermine la formule pour calculer sa longueur d'après ses coordonnées avant d'aller plus loin.

    Pour ce qui est de la signification de "données incorrectes" dans l'énoncé, je pense qu'il s'agit de vérifier le type des paramètres reçus par la fonction.
      0  0

  10. #10
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 658
    Points : 1 158
    Points
    1 158
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    C'est plutôt l'inverse
    Oups, au temps pour moi. Et puis ce n'est pas l'aire qu'il faut calculer, mas le périmètre... Bref, vivement le weekend.
      0  0

  11. #11
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    ok je comprend mieux maintenant mais ecrire la formule sur python je fait un import math pour pouvoir mettre une racine carré et utiliser sqrt
      0  0

  12. #12
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 669
    Points
    6 669
    Par défaut
    [EDIT]C'est bien beau mais ça ne permet pas de calculer le périmètre à la fin[/EDIT]


    En étant un peu astucieux deux secondes, on peut très bien se passer de la racine carrée (pour des nombres positifs: a = b <=> a² = b²).
      1  0

  13. #13
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    donc si j'ai bien compris j'ai créer une variable qui correspond à la longueur qu'on veut calculer et j'ai entrer la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def parallelogramme(p1,p2,p3,p4):
        x1,y1=p1
        x2,y2=p2
        x3,y3=p3
        x4,y4=p4
        AB= (x2-x1)**2+(y2-y1)**2
      0  0

  14. #14
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 669
    Points
    6 669
    Par défaut
    Au temps pour moi je t'ai induite en erreur, même si la racine carrée n'est pas nécessaire pour comparer les longueurs, tu en auras besoin au final pour retourner le périmètre du parallélogramme.
      0  0

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par amina3020- Voir le message
    donc si j'ai bien compris j'ai créer une variable qui correspond à la longueur qu'on veut calculer et j'ai entrer la formule

    4 points <=> 4 côtés dont la longueur est à comparer 2 à 2.
    Vous n'avez même pas fait que le 1/4 du boulot.
    Il faudrait vous réveiller un peu là...

    - W
      0  0

  16. #16
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    vous pouvez arrêter svp c'est fatiguant à la fin si c'est pour répondre comme cela ne répondez pas c'est mieux de plus j'ai pas dit que j"avais fini je voulais juste savoir si j'étais dans la bonne direction mais bon continuez à être désagréable peut-être que vous l'êtes de nature
      0  0

  17. #17
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par amina3020- Voir le message
    vous pouvez arrêter svp c'est fatiguant à la fin si c'est pour répondre comme cela ne répondez pas c'est mieux de plus j'ai pas dit que j"avais fini je voulais juste savoir si j'étais dans la bonne direction mais bon continuez à être désagréable peut-être que vous l'êtes de nature
    Vous êtes supposé avoir cherché comment faire sur une feuille de papier avant de coder. Pas la peine à chaque fois que vous écrivez une ligne demander si çà va ou pas: soit c'est cohérent avec ce qu'il y a sur votre feuille de papier, soit çà ne l'est pas et vous corrigez.

    Et lorsque çà y ressemble, le verdict vous sera donné par l'interpréteur Python.

    C'est pas compliqué... vous voulez qu'on vous tienne par la main à chaque instruction que vous écrivez? Grandissez un peu. Bossez proprement. Testez votre code avec l'interpréteur Python: il ne vous mordra pas (mais moi, si vous continuez a jouer les bébés, pas sur...)

    - W
      0  0

  18. #18
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    je l'ai fait sur feuille comme vous l'avez demander j'ai calculer les 4 longueurs j'en ai trouvé deux de mêmes longueurs et deux autres différentes donc maitenant je doit le traduire en python
    donc la j'ai calculer les 4 longueurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def parallelogramme(p1,p2,p3,p4):
        x1,y1=p1
        x2,y2=p2
        x3,y3=p3
        x4,y4=p4
        AB= (x2-x1)**2+(y2-y1)**2
        DC= (x3-x4)**2+(y3-y4)**2
        AD= (x4-x1)**2+(y4-y1)**2
        CB= (x2-x3)**2+(y2-y3)**2
    c'est bon j'ai tous bien compris j'ai réussi à le faire sur papier maintenant j'aurais besoin d'aide pour traduire svp donc enfete j'ai calculer les 4 longueurs et je dit
    si ab==dc and ad==cb
    et c'est la ou je suis bloqué enfin pas bloqué parce que je sais ce qu'il faut mettre je doit mettre la formule pour calculer le périmètre soit 2*(a+b)
      0  0

  19. #19
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 351
    Points : 36 875
    Points
    36 875
    Par défaut
    Citation Envoyé par amina3020- Voir le message
    je l'ai fait sur feuille comme vous l'avez demander j'ai calculer les 4 longueurs j'en ai trouvé deux de mêmes longueurs et deux autres différentes donc maitenant je doit le traduire en python
    Sur votre feuille de papier, il doit aussi y avoir des comparaisons entre longueurs.
    Et comme on ne les voit pas dans votre code Python, c'est que vous n'avez pas tout "traduit" et encore moins testé. Bossez plutôt que d'aller vous distraire dans les forums.

    - W
      0  0

  20. #20
    Futur Membre du Club
    Femme Profil pro
    etudiante
    Inscrit en
    Février 2020
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : Février 2020
    Messages : 61
    Points : 9
    Points
    9
    Par défaut
    mais la j'essaye simplement de faire la partie true et je vous remercie de m'avoir donnné le conseil de le faire sur papier dorénavant je ferais sur papier c'est tellement mieux pour comprendre ensuite
      0  0

Discussions similaires

  1. exo python : probleme sur les operateurs ?
    Par m1338 dans le forum Général Python
    Réponses: 4
    Dernier message: 05/03/2019, 13h48
  2. Aide exo python
    Par Aurelenass dans le forum Exercices
    Réponses: 4
    Dernier message: 07/09/2017, 15h02
  3. [Python 3.X] Exo tp listes en python
    Par Power Lousse dans le forum Général Python
    Réponses: 3
    Dernier message: 11/12/2015, 20h09
  4. petit exo python
    Par Invité dans le forum Général Python
    Réponses: 1
    Dernier message: 05/05/2012, 18h10
  5. Recherche des ptis exos pour python
    Par newsuser dans le forum Général Python
    Réponses: 4
    Dernier message: 27/11/2011, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo