3803 - Arie Poligon Regulat

From Bitnami MediaWiki
Revision as of 11:08, 23 May 2023 by Adrian (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința[edit]

Se dă un poligon regulat cu nr_laturi laturi cu lungime lungimea unei laturi. Aflați aria poligonului.

Date de intrare[edit]

Programul citește de la tastatură numărul nr_laturi și lungime.

Date de ieșire[edit]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul arie, reprezentând aria poligonului regulat cu 2 zecimale exacte.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".

Restricții și precizări[edit]

  • 3 ⩽ nr_laturi ⩽ 360
  • 1 ⩽ lungime ⩽ 1000

Exemplu 1[edit]

Intrare
3
2
Ieșire
Datele de intrare corespund restricțiilor impuse
1.73


Exemplu 2[edit]

Intrare
3
0
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 3803 - AriePoligonRegulat
  2. Importam functia tan si variabila pi din modulul math

from math import tan, pi


def validare(nr_laturi, lungime):

   # Daca datele sunt invalide v-om face raise la eroarea ValueError
   conditii = (
       nr_laturi >= 3, nr_laturi <= 360,
       lungime >= 1, lungime <= 1000
   )
   if not all(conditii):
       raise ValueError


def arie_poligon(nr_laturi, lungime):

   # Pentru a afla aria poligonului, folosim formula matematica
   arie = (nr_laturi * (lungime ** 2) * 1 / tan(pi / nr_laturi)) / 4
   # Folosim :.2f pentru a limita rezultatul la doua zecimale
   print(f"{arie:.2f}")


if __name__ == '__main__':

   # Citim de la tastatura numerele cerute
   nr_laturi = int(input())
   lungime = int(input())
   # Verificam daca datele introduse sunt valide
   # daca nu afisam mesajul corespunsador
   try:
       validare(nr_laturi, lungime)
   except ValueError:
       print("Nu au fost respectate cerintele impuse")
   else:
       print("Datele de intrare corespund restricțiilor impuse")
       arie_poligon(nr_laturi, lungime)

</syntaxhighlight>