3825 - Radius: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 32: Line 32:
: Datele introduse nu corespund restricțiilor impuse.
: Datele introduse nu corespund restricțiilor impuse.
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 3825 - Radius
import math
import math



Revision as of 17:33, 10 November 2023

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
n
Ieșire
Datele introduse nu corespund restricțiilor impuse.

<syntaxhighlight lang="python" line>

  1. 3825 - Radius

import math


def verificare_restrictii(n1, a1):

   # functia de verificare a datelor de intrare
   if 3 <= n1 <= 10 ** 5 and 1 <= a1 <= 10 ** 9:
       return True
   else:
       return False


def distanta_centru_varf(n1, a1):

   # Unghiul dintre doua laturi adiacente ale poligonului
   unghi = 2 * math.pi / n1
   # Distanta de la centrul poligonului la oricare varf
   r1 = a1 / (2 * math.sin(unghi / 2))
   return r1


if __name__ == "__main__":

   try:
       # Citim datele de intrare
       n, a = map(int, input().split())
       if verificare_restrictii(n, a):  # verificam datele de intrare
           print("Datele de intrare corespund restrictiilor impuse.")
           # Calculam distanta de la centrul poligonului la varf
           r = distanta_centru_varf(n, a)
           # Afisam rezultatul cu 2 zecimale exacte, fara rotunjire
           print(f"{r: .2f}")
       else:
           print("Datele de intrare nu corespund restrictiilor impuse.")
   # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator
   except ValueError:
       print("Datele de intrare nu corespund restrictiilor impuse.")
   except IndexError:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>