2670 - Ecuatie 4: 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 &les...) |
Fără descriere a modificării |
||
(Nu s-au afișat 3 versiuni intermediare efectuate de același utilizator) | |||
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 | ||
: 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> | ||
# 2670 - Ecuatie 4 | |||
import math | import math | ||
if | 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__': | ||
r = | # 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(" | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
except IndexError: | |||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea curentă din 14 noiembrie 2023 21:56
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.")