bonjours moi et ma classe n'arrivons pas a comprendre ce qu'il faut faire et surout COMMENT le faire
Ecrire un programme perimetre qui prend un argument une liste de points sous la forme d'un tableau du type [xA,yA,xB,yB,xC,yC,....] et qui calcule le périmètre du polygone ABC..
donc si qqn peut nous venir en aide et nous sauvez d'un desastre general on vous sera reconnaissant
C'est un périmètre, il faut calculer la distance entre les points (xA, yA) et (xB, yB), puis entre les points (xB, yB) et (xC, yC), etc... et additionner.
Le temps qu'il faut pour écrire ça, tu aurais pu l'utiliser pour ajouter des majuscules en début de phrases et des points à la fin, rien que ça améliorerait pas mal la forme.
Surtout que niveau orthographe, on a vu pire.
Pour revenir sur le problème principal, on vous a donné une base de code à compléter ou pas ? C'est votre première année de programmation ?
bonjours moi et ma classe n'arrivons pas a comprendre ce qu'il faut faire et surout COMMENT le faire
Ecrire un programme perimetre qui prend un argument une liste de points sous la forme d'un tableau du type [xA,yA,xB,yB,xC,yC,....] et qui calcule le périmètre du polygone ABC..
donc si qqn peut nous venir en aide et nous sauvez d'un desastre general on vous sera reconnaissant
Tu es en quelle classe ? Pour la réponse, tout dépend de ce qu'on vous a appris. Mais l'exercice n'a rien d'évident si on est un débutant complet en Python. Je vais supposer que vous savez le strict minimum.
Soit L la liste qui est donnée. Supposons que le polygone ait n sommets. La liste contient donc 2n nombres. Pour calculer le périmètre, il faut calculer la somme des longueurs consécutives. Il y a n côtés donc tu peux être sûr que dans ton code tu auras qqchose du genre :
for k in range(n):
Dans le corps de la boucle ci-dessus, on va se déplacer dans la liste et récupérer les coordonnées des points,
le 1er et le 2e
le 2e et le 3e
le 3e et le 4e
etc
On voit bien qu'on va avoir un problème avec notre liste L pour calculer la longueur du dernier côté car un des points sera à la fin et l'autre sera au début. Pour que tout ça soit plus simple à coder, on va se permettre de rajouter dans la liste L, à la fin, le premier point, ce qui donne :
L.append(L[0])
L.append(L[1])
Ensuite comment calculer la somme (je suppose que tu sais calculer une somme avec une boucle for, sinon ce n'st même pas la peine ...) ?
Tu définis ta variable somme initialisée à 0 et tu vas définir un indice qui va t'aider à progresser dans ta liste pour extraire les points deux par deux dans l'ordre indiqué ci-dessus, donc au total extraire des nombres 4 par 4. Ce qui va donner quelque chose comme, que je te laisse compléter :
L=[0,0,4,0,4,7,0,4,-3, 4]
N=len(L)
n=N//2
i=0
s=0
L.append(L[0])
L.append(L[1])
for k in range(n):
# Il manque
# le code pour les deux points
# à extraire
# (4 nombres)
# Penser à mettre à jour i
# A toi de l'écrire
cote=((xA-xB)**2+(yA-yB)**2)**.5
s=s+cote
print(s)
24.0
Il est aussi possible de se dispenser de l'indice auxilaire i et de se débrouiller avec k seulement, je trouve que c'est plus facile avec i.
Il te restera à écrire une fonction mais une fois le code ci-dessus rempli, c'est facile.
- Edité par PascalOrtiz 6 novembre 2019 à 18:24:36
Je viens de lire ton message. Julia est une amie de ma fille. Elles sont en seconde et débute en programmation et en Python.... L'exercice me paraît très compliqué pour des novices en programmation.
Moi même est fait un peu de programmation et j'avoue ne pas comprendre beaucoup....
Dans ta liste L tu as mis des nombres au hasard ou bien d'où sort il? Merci de ton aide.
Ta fille est à LLG ? Pour la complexité, je partage ton avis .
Pour faire marcher ce programme il faut un polygone avec ses sommets. En plaçant des points sur un quadrillage, j'ai dessiné un polygone (ce qui m'a permi d'obtenir la liste en question ) et j'ai fait en sorte qu'il ait un périmètre entier, cela pour vérifier que le programme est juste (périmètre 24). Mais ça pourrait tout aussi bien marcher avec une liste d'entiers aléatoires.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Découverte Python Doc Tkinter Les chaînes de caractères
Découverte Python Doc Tkinter Les chaînes de caractères
Blond, bouclé, toujours le sourire aux lèvres...
Découverte Python Doc Tkinter Les chaînes de caractères