3901 - Latură Triunghi

From Bitnami MediaWiki

Cerința[edit | edit source]

Se dau două laturi ale unui triunghi oarecare și măsura unghiului dintre ele. Aflați lungimea celeilalte laturi.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele naturale latura1, latura2, unghi, reprezentând lungimea celor două laturi și măsura unghiului dintre ele.

Date de ieșire[edit | edit source]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe ecran numărul latura3 reprezentând lungimea celeilalte laturi, cu cel puțin 2 zecimale exacte.

În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".

Restricții și precizări[edit | edit source]

  • 1 ⩽ latura1, latura2 ⩽ 1000
  • 1 ⩽ unghi ⩽ 179
  • Rezultatul va avea cel mult 2 zecimale exacte

Exemplu 1[edit | edit source]

Intrare
22
29
40
Ieșire
Datele de intrare corespund restricțiilor impuse
18.64


Exemplu 2[edit | edit source]

Intrare
22
29
180
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 3901 - LaturaTriunghi
  2. Importam functia sqrt, functia cos si pi din modulul math

from math import cos, sqrt, pi


def validare(latura1, latura2, unghi):

   # Daca datele sunt invalide v-om face raise la eroarea ValueError
   conditii = (
       latura1 >= 1, latura1 <= 1000,
       latura2 >= 1, latura2 <= 1000,
       unghi >= 1, unghi <= 179
   )
   if not all(conditii):
       raise ValueError


def laturatriunghi(latura1, latura2, unghi):

   # Pentru a afla a 3-ia latura din triunghi folosim formula matematica
   latura3 = sqrt(
       latura1 ** 2 + latura2 ** 2 - 2 * latura1 * latura2 *
       cos(pi * unghi / 180)
   )
   # Afisam rezultatul cu doua zecimale rotunjite folosind :.2f
   print(f"{latura3:.2f}")


if __name__ == '__main__':

   # Citim de la tastatura numerele cerute
   latura1 = int(input())
   latura2 = int(input())
   unghi = int(input())
   # Verificam daca datele introduse sunt valide
   # daca nu afisam mesajul corespunsador
   try:
       validare(latura1, latura2, unghi)
   except ValueError:
       print("Nu au fost respectate cerintele impuse")
   else:
       print("Datele de intrare corespund restricțiilor impuse")
       laturatriunghi(latura1, latura2, unghi)

</syntaxhighlight>