3825 - Radius: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: == 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...)
 
Fără descriere a modificării
Linia 12: Linia 12:
: 3 2
: 3 2
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 1.15
: 1.15
== Exemplul 2 ==  
== Exemplul 2 ==  
Linia 17: Linia 18:
: 4 2
: 4 2
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 1.41
: 1.41
== Exemplul 3 ==
== Exemplul 3 ==
Linia 22: Linia 24:
: 6 3
: 6 3
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 3.00
: 3.00
== Exemplul 4 ==
; Intrare
: n
; Ieșire
: Datele introduse nu corespund restricțiilor impuse.
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
import math
import math


def distanta_centru_varf(n, a):
 
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
     # Unghiul dintre doua laturi adiacente ale poligonului
     unghi = 2 * math.pi / n
     unghi = 2 * math.pi / n1
     # Distanta de la centrul poligonului la oricare varf
     # Distanta de la centrul poligonului la oricare varf
     r = a / (2 * math.sin(unghi / 2))
     r1 = a1 / (2 * math.sin(unghi / 2))
     return r
     return r1
 


if __name__ == "__main__":
if __name__ == "__main__":
     # Citim datele de intrare
     try:
    n, a = map(int, input().split())
        # Citim datele de intrare
    # Calculam distanta de la centrul poligonului la varf
        n, a = map(int, input().split())
    r = distanta_centru_varf(n, a)
        if verificare_restrictii(n, a):  # verificam datele de intrare
    # Afisam rezultatul cu 2 zecimale exacte, fara rotunjire
            print("Datele de intrare corespund restrictiilor impuse.")
    print(f"{r:.2f}")
            # 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>
</syntaxhighlight>

Versiunea de la data 10 noiembrie 2023 17:10

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.
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.")