3814 - Arie Patrulater Inscriptibil: Difference between revisions
No edit summary |
No edit summary |
||
Line 26: | Line 26: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# 3814 Arie Patrulater Inscriptibil | # 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): | def calculeaza_radical(n): | ||
return n ** 0.5 | return n ** 0.5 | ||
def calculeaza_arie_perimetru(l_1, l_2, l_3, l_4): | def calculeaza_arie_perimetru(l_1, l_2, l_3, l_4): | ||
# Semiperimetrul | # Semiperimetrul | ||
s_perimetru = (l_1 + l_2 + l_3 + l_4) / 2 | s_perimetru = (l_1 + l_2 + l_3 + l_4) / 2 | ||
Line 63: | Line 55: | ||
# | # Verificăm dacă acest script este rulat direct (nu este importat ca modul) | ||
if __name__ == "__main__": | 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): | |||
print( | # 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> |
Revision as of 17:27, 9 November 2023
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
Exemplul 1
- Intrare
- 13
- 14
- 3
- 13
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 100.123
Exemplul 2
- Intrare
- 13
- 14
- 3
- n
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<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>