Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- #----------------------------------------------------------------------------
- # Created by : Alain Van Kerckhoven
- # Created Date: 08/11/2023
- # Licence : GPL
- # Version : 1.1
- # ---------------------------------------------------------------------------
- """
- Calcule le périmètre, l'aire, l'angle interne, l'apothème, la plus grande
- diagonale et le rayon du cercle circonscrit d'un polygone régulier convexe.
- """
- # ---------------------------------------------------------------------------
- import math
- import sympy as sp # Afin de résoudre les erreurs de précision dûs à la virgule flottante.
- noms_polygones = {
- 3: "Triangle",
- 4: "Quadrilatère",
- 5: "Pentagone",
- 6: "Hexagone",
- 7: "Heptagone",
- 8: "Octogone",
- 9: "Ennéagone",
- 10: "Décagone",
- 11: "Hendécagone",
- 12: "Dodécagone",
- 13: "Tridécagone",
- 14: "Tétradécagone",
- 15: "Pentadécagone",
- 16: "Hexadécagone",
- 17: "Heptadécagone",
- 18: "Octadécagone",
- 19: "Ennéadécagone",
- 20: "Icosagone",
- 21: "Icosiunagone",
- 22: "Icosidigone",
- 23: "Icositrigone",
- 24: "Icosiquatragone",
- 25: "Icosipentagone",
- 26: "Icosihexagone",
- 27: "Icosiheptagone",
- 28: "Icosioctagone",
- 29: "Icosiennéagone",
- 30: "Triacontagone",
- 31: "Triacontiunagone",
- 32: "Triacontidigone",
- 33: "Triacontitrigone",
- 34: "Triacontiquatragone",
- 35: "Triacontipentagone",
- 36: "Triacontihexagone",
- 37: "Triacontiheptagone",
- 38: "Triacontioctagone",
- 39: "Triacontiennéagone",
- 40: "Quadragone",
- 41: "Quadracote",
- 42: "Quadravingtigone",
- 43: "Quadragintatrigone",
- 44: "Quadragintaquattuorigone",
- 45: "Quadragintapentagone",
- 46: "Quadragintahexagone",
- 47: "Quadragintaheptagone",
- 48: "Quadragintaoctagone",
- 49: "Quadragintaennéagone",
- 50: "Pentacontagone",
- 51: "Pentacontiunagone",
- 52: "Pentacontidigone",
- 53: "Pentacontitrigone",
- 54: "Pentacontiquatragone",
- 55: "Pentacontipentagone",
- 56: "Pentacontihexagone",
- 57: "Pentacontiheptagone",
- 58: "Pentacontioctagone",
- 59: "Pentacontiennéagone",
- 60: "Hexacontagone",
- 61: "Hexacontiunagone",
- 62: "Hexacontidigone",
- 63: "Hexacontitrigone",
- 64: "Hexacontiquatragone",
- 65: "Hexacontipentagone",
- 66: "Hexacontihexagone",
- 67: "Hexacontiheptagone",
- 68: "Hexacontioctagone",
- 69: "Hexacontiennéagone",
- 70: "Heptacontagone",
- 71: "Heptacontiunagone",
- 72: "Heptacontidigone",
- 73: "Heptacontitrigone",
- 74: "Heptacontiquatragone",
- 75: "Heptacontipentagone",
- 76: "Heptacontihexagone",
- 77: "Heptacontiheptagone",
- 78: "Heptacontioctagone",
- 79: "Heptacontiennéagone",
- 80: "Octacontagone",
- 81: "Octacontiunagone",
- 82: "Octacontidigone",
- 83: "Octacontitrigone",
- 84: "Octacontiquatragone",
- 85: "Octacontipentagone",
- 86: "Octacontihexagone",
- 87: "Octacontiheptagone",
- 88: "Octacontioctagone",
- 89: "Octacontiennéagone",
- 90: "Enneacontagone",
- 91: "Enneacontiunagone",
- 92: "Enneacontidigone",
- 93: "Enneacontitrigone",
- 94: "Enneacontiquatragone",
- 95: "Enneacontipentagone",
- 96: "Enneacontihexagone",
- 97: "Enneacontiheptagone",
- 98: "Enneacontioctagone",
- 99: "Enneacontiennéagone",
- 100: "Hectogone",
- }
- while True:
- n = int(input("Entrez le nombre de côtés du polygone régulier convexe : "))
- if n>2:
- break
- else:
- print("Un polygone a au moins trois côtés. Veuillez réessayer.")
- # Demander la longueur d'un côté
- cote = sp.Rational(input("Entrez la longueur d'un côté du polygone : "))
- # Calculer le périmètre du polygone
- perimetre = n * cote
- # Calculer l'aire du polygone régulier
- if n==4:
- aire = cote*cote # Pour éviter les décimales inutiles dues à la tangeante
- else:
- aire = (n * cote**2) / (4 * sp.tan(math.pi / n))
- # Calculer la longueur de la plus grande diagonale
- if n > 3:
- diagonale = cote * sp.sqrt(2 * (1 - sp.cos((2 * math.pi) / n)))
- else:
- diagonale = 0
- # Calculer l'angle interne du polygone
- angle_interne = (n - 2) * 180 / n
- # Calculer l'apothème (distance du centre au milieu d'un côté)
- apotheme = cote / (2 * sp.tan(math.pi / n))
- # Calculer le rayon du cercle circonscrit (du centre au sommet)
- rayon = cote / (2 * sp.sin(math.pi / n))
- # Déterminer le nom du polygone en français
- if n in noms_polygones:
- nom_du_polygone=noms_polygones[n]
- else:
- nom_du_polygone=f"polygone à {n} côtés"
- # Afficher les résultats
- print("")
- print(f"Caractéristiques d'un {nom_du_polygone} de côté {cote} :")
- print(f"Périmètre : {perimetre}")
- print(f"Aire : {aire}")
- print(f"Angle interne : {angle_interne} degrés")
- print(f"Apothème : {apotheme}")
- print(f"Rayon du cercle circonscrit : {rayon}")
- if diagonale > 0:
- print(f"Longueur de la plus grande diagonale : {diagonale}")
- else:
- print(f"Un {nom_du_polygone} n'a pas de diagonale.")
Advertisement
Add Comment
Please, Sign In to add comment