2670 - Ecuatie 4: Difference between revisions
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 34: | Line 34: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 2670 - Ecuatie 4 | |||
import math | import math | ||
def | def validare(n1, a1): # functia de validare a datelor de intrare | ||
if 3 <= | if not (3 <= n1 <= 360 and 1 <= a1 <= 1000): | ||
raise ValueError | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
return True | |||
def | def distanta(n1, a1): # functia de rezolvare | ||
r1 = ( | r1 = a1 / (2 * math.sin(math.pi / n1)) # formula pentru distanta de la centrul poligonului la varf | ||
return r1 | return round(r1, 2) | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam | |||
try: | 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: | except ValueError: | ||
print("Datele de intrare nu corespund | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
except IndexError: | |||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 21:56, 14 November 2023
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numerele n si a.
Date de ieşire[edit | edit source]
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[edit | edit source]
- 3 ⩽ n ⩽ 360
- 1 ⩽ a ⩽ 1000
Exemplul 1[edit | edit source]
- Intrare
- 3 2
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1.15
Exemplul 2[edit | edit source]
- Intrare
- 4 2
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1.41
Exemplul 3[edit | edit source]
- Intrare
- 6 3
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3.00
Exemplul 4[edit | edit source]
- Intrare
- 3 n
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 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.")
</syntaxhighlight>