3814 - Arie Patrulater Inscriptibil: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
Line 16: Line 16:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 100.123
: 100.123
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
Line 24: Line 25:
; Ieșire
; Ieșire
: Datele de intrare nu corespund restricțiilor impuse.
: Datele de intrare nu corespund restricțiilor impuse.
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>

Latest revision as of 19:11, 10 November 2023

Cerinţa[edit]

Se dau lungimile laturilor patrulaterului inscriptibil ABCD. Aflati aria acestuia.

Date de intrare[edit]

Programul citește de la tastatură lungimile laturilor AB, BC, CD, AD.

Date de ieşire[edit]

Programul va afișa pe ecran aria patrulaterului, cu 3 zecimale exacte.

Restricții și precizări[edit]

  • 1 ⩽ AB, BC, CD, AD ⩽ 1000

Exemplul 1[edit]

Intrare
13
14
3
13
Ieșire
Datele introduse corespund restricțiilor impuse.
100.123


Exemplul 2[edit]

Intrare
13
14
3
n
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 3814 Arie Patrulater Inscriptibil
  1. 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)


  1. 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>