3803 - Arie Poligon Regulat

De la Universitas MediaWiki

Cerința

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

Date de intrare

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

Date de ieșire

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

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

Exemplu 1

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


Exemplu 2

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


Rezolvare

# 3803 - AriePoligonRegulat
# 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)