3814 - Arie Patrulater Inscriptibil: Difference between revisions
Pagină nouă: == Cerinţa == Se dau lungimile laturilor patrulaterului inscriptibil '''ABCD'''. Aflati aria acestuia. == Date de intrare == Programul citește de la tastatură lungimile laturilor '''AB, BC, CD, AD'''. == Date de ieşire == Programul va afișa pe ecran aria patrulaterului, cu '''3''' zecimale exacte. == Restricții și precizări == * 1 ⩽ AB, BC, CD, AD ⩽ 1000 == Exemplu == ; Intrare ; 13 14 3 13 ; Ieșire ; 100.123 == Rezolvare == <syntaxhighlight lang="python" lin... |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* 1 ⩽ AB, BC, CD, AD ⩽ 1000 | * 1 ⩽ AB, BC, CD, AD ⩽ 1000 | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: 13 | |||
: 14 | |||
: 3 | |||
: 13 | |||
; Ieșire | ; Ieșire | ||
: Datele introduse corespund restricțiilor impuse. | |||
: 100.123 | |||
<br> | |||
== Exemplul 2 == | |||
; Intrare | |||
: 13 | |||
: 14 | |||
: 3 | |||
: n | |||
; Ieșire | |||
: Datele de intrare nu corespund restricțiilor impuse. | |||
<br> | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | # 3814 Arie Patrulater Inscriptibil | ||
def | |||
# Definim funcția de verificare a valorilor laturilor | |||
def verificare(l_1, l_2, l_3, l_4): | |||
# Verificăm dacă laturile respectă restricțiile problemei | |||
if 1 <= l_1 <= 1000 and 1 <= l_2 <= 1000 and 1 <= l_3 <= 1000 and 1 <= l_4 <= 1000: | |||
# Dacă valorile sunt valide, returnăm True | |||
return True | |||
else: | |||
# Dacă valorile nu sunt valide, ridicăm o excepție | |||
raise ValueError | |||
def calculeaza_radical(n): | |||
return n ** 0.5 | return n ** 0.5 | ||
def | |||
def calculeaza_arie_perimetru(l_1, l_2, l_3, l_4): | |||
# Semiperimetrul | # Semiperimetrul | ||
s_perimetru = ( | s_perimetru = (l_1 + l_2 + l_3 + l_4) / 2 | ||
# Aria patrulaterului | # Aria patrulaterului | ||
aria = | aria = calculeaza_radical((s_perimetru - l_1) * (s_perimetru - l_2) * | ||
(s_perimetru - l_3) * (s_perimetru - l_4)) | |||
# Rotunjim suma | # Rotunjim suma obținută la 3 zecimale | ||
return round(aria, 3) | return round(aria, 3) | ||
# | |||
# Verificăm dacă acest script este rulat direct (nu este importat ca modul) | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
print( | try: | ||
# Citim laturile de la utilizator | |||
latura_1 = float(input("Introduceti prima latura: ")) | |||
latura_2 = float(input("Introduceti a doua latura: ")) | |||
latura_3 = float(input("Introduceti a treia latura: ")) | |||
latura_4 = float(input("Introduceti a patra latura: ")) | |||
# Verificăm dacă datele introduse sunt valide | |||
if verificare(latura_1, latura_2, latura_3, latura_4): | |||
# Dacă datele sunt valide, afișăm un mesaj de confirmare | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
# Calculăm și afișăm aria | |||
print(calculeaza_arie_perimetru(latura_1, latura_2, latura_3, latura_4)) | |||
# Tratăm cazul în care datele introduse nu sunt valide | |||
except ValueError: | |||
# Afișăm un mesaj de eroare | |||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 19:11, 10 November 2023
Cerinţa[edit | edit source]
Se dau lungimile laturilor patrulaterului inscriptibil ABCD. Aflati aria acestuia.
Date de intrare[edit | edit source]
Programul citește de la tastatură lungimile laturilor AB, BC, CD, AD.
Date de ieşire[edit | edit source]
Programul va afișa pe ecran aria patrulaterului, cu 3 zecimale exacte.
Restricții și precizări[edit | edit source]
- 1 ⩽ AB, BC, CD, AD ⩽ 1000
Exemplul 1[edit | edit source]
- Intrare
- 13
- 14
- 3
- 13
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 100.123
Exemplul 2[edit | edit source]
- Intrare
- 13
- 14
- 3
- n
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 3814 Arie Patrulater Inscriptibil
- Definim funcția de verificare a valorilor laturilor
def verificare(l_1, l_2, l_3, l_4):
# Verificăm dacă laturile respectă restricțiile problemei if 1 <= l_1 <= 1000 and 1 <= l_2 <= 1000 and 1 <= l_3 <= 1000 and 1 <= l_4 <= 1000: # Dacă valorile sunt valide, returnăm True return True else: # Dacă valorile nu sunt valide, ridicăm o excepție raise ValueError
def calculeaza_radical(n):
return n ** 0.5
def calculeaza_arie_perimetru(l_1, l_2, l_3, l_4):
# Semiperimetrul s_perimetru = (l_1 + l_2 + l_3 + l_4) / 2
# Aria patrulaterului aria = calculeaza_radical((s_perimetru - l_1) * (s_perimetru - l_2) * (s_perimetru - l_3) * (s_perimetru - l_4))
# Rotunjim suma obținută la 3 zecimale return round(aria, 3)
- Verificăm dacă acest script este rulat direct (nu este importat ca modul)
if __name__ == "__main__":
try: # Citim laturile de la utilizator latura_1 = float(input("Introduceti prima latura: ")) latura_2 = float(input("Introduceti a doua latura: ")) latura_3 = float(input("Introduceti a treia latura: ")) latura_4 = float(input("Introduceti a patra latura: "))
# Verificăm dacă datele introduse sunt valide if verificare(latura_1, latura_2, latura_3, latura_4): # Dacă datele sunt valide, afișăm un mesaj de confirmare print("Datele introduse corespund restricțiilor impuse.")
# Calculăm și afișăm aria print(calculeaza_arie_perimetru(latura_1, latura_2, latura_3, latura_4))
# Tratăm cazul în care datele introduse nu sunt valide except ValueError: # Afișăm un mesaj de eroare print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>