2670 - Ecuatie 4: Difference between revisions

From Bitnami 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 &les...
 
No edit summary
Line 12: Line 12:
: 3 2
: 3 2
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 1.15
: 1.15
== Exemplul 2 ==
== Exemplul 2 ==
Line 17: Line 18:
: 4 2
: 4 2
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: 1.41
: 1.41
== Exemplul 3 ==
== Exemplul 3 ==
Line 22: Line 24:
: 6 3
: 6 3
; Ieșire
; Ieșire
: 3.00  
: Datele introduse corespund restricțiilor impuse.
: 3.00
== Exemplul 4 ==
; Intrare
: 3 n
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
 
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
import math
import math


def calculeaza_distanta(n, a):
    # Calcularea distanței de la centrul poligonului la oricare vârf
    r = (a / 2) / math.sin(math.pi / n)
    return r


if __name__ == "__main__":
def verificare_restrictii(n, a): # functia de verificare a datelor de intrare
    # Citirea datelor de intrare
     if 3 <= n <= 10**5 and 1 <= a <= 10**9:
     n = int(input("Introduceți numărul de laturi ale poligonului: "))
        return True
     a = float(input("Introduceți lungimea unei laturi: "))
    else:
        return False
 
 
def calculeaza_distanta(n, a):  # functia de rezolvare a problemei
     r1 = (a / 2) / math.sin(math.pi / n)
    return r1
 


     # Apelarea funcției pentru calcularea distanței
if __name__ == '__main__':
    r = calculeaza_distanta(n, a)
     try:
        nr_laturi = int(input("Introduceți numărul de laturi ale poligonului: "))
        lungime_latura = float(input("Introduceți lungimea unei laturi: "))


    # Afișarea rezultatului cu două zecimale exacte
        if verificare_restrictii(nr_laturi, lungime_latura):  # verificarea restrictiilor
    print("{:.2f}".format(r))
            print("Datele de intrare corespund restrictiilor impuse.")
            r = calculeaza_distanta(nr_laturi, lungime_latura)  # apelul functiei de rezolvare
            print("{:.2f}".format(r))  # afisarea rezultatului
        else:
            print("Datele de intrare nu corespund restrictiilor impuse.")
    except ValueError:
        print("Datele de intrare nu corespund restrictiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:19, 9 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
3 n
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line> import math


def verificare_restrictii(n, a): # functia de verificare a datelor de intrare

   if 3 <= n <= 10**5 and 1 <= a <= 10**9:
       return True
   else:
       return False


def calculeaza_distanta(n, a): # functia de rezolvare a problemei

   r1 = (a / 2) / math.sin(math.pi / n)
   return r1


if __name__ == '__main__':

   try:
       nr_laturi = int(input("Introduceți numărul de laturi ale poligonului: "))
       lungime_latura = float(input("Introduceți lungimea unei laturi: "))
       if verificare_restrictii(nr_laturi, lungime_latura):  # verificarea restrictiilor
           print("Datele de intrare corespund restrictiilor impuse.")
           r = calculeaza_distanta(nr_laturi, lungime_latura)  # apelul functiei de rezolvare
           print("{:.2f}".format(r))  # afisarea rezultatului
       else:
           print("Datele de intrare nu corespund restrictiilor impuse.")
   except ValueError:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>