2670 - Ecuatie 4

De la Universitas MediaWiki

Cerinţa

Se da un poligon regulat cu n laturi si a lungimea unei laturi. Aflati distanta de la centrul poligonului la oricare varf.

Date de intrare

Programul citește de la tastatură numerele n si a.

Date de ieşire

Programul va afișa pe ecran numărul r, reprezentand distanta de la centrul poligonului la varf, cu 2 zecimale exacte, fără rotunjire.

Restricții și precizări

  • 3 ⩽ n ⩽ 360
  • 1 ⩽ a ⩽ 1000

Exemplul 1

Intrare
3 2
Ieșire
Datele introduse corespund restricțiilor impuse.
1.15

Exemplul 2

Intrare
4 2
Ieșire
Datele introduse corespund restricțiilor impuse.
1.41

Exemplul 3

Intrare
6 3
Ieșire
Datele introduse corespund restricțiilor impuse.
3.00

Exemplul 4

Intrare
3 n
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

# 2670 - Ecuatie 4
import math


def validare(n1, a1):               # functia de validare a datelor de intrare
    if not (3 <= n1 <= 360 and 1 <= a1 <= 1000):
        raise ValueError
    print("Datele introduse corespund restricțiilor impuse.")
    return True


def distanta(n1, a1):             # functia de rezolvare
    r1 = a1 / (2 * math.sin(math.pi / n1))  # formula pentru distanta de la centrul poligonului la varf
    return round(r1, 2)


if __name__ == '__main__':
    # din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam
    try:
        n = int(input("Introduceti numarul de laturi n: "))          # citirea numarului de laturi
        a = int(input("Introduceti lungimea unei laturi a: "))       # citirea lungimii unei laturi
        validare(n, a)                               # apelul functiei de validare
        r = distanta(n, a)                          # apelul functiei de rezolvare
        print(f" {r}")

    except ValueError:
        print("Datele de intrare nu corespund restricțiilor impuse.")
    except IndexError:
        print("Datele de intrare nu corespund restricțiilor impuse.")