3901 - Latură Triunghi

From Bitnami MediaWiki
Revision as of 03:03, 14 May 2023 by Adrian (talk | contribs)

Cerința

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

Date de intrare

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

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 "Datele de intrare nu corespund restricțiilor impuse".

Restricții și precizări

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

Exemplu 1

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


Exemplu 2

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


Rezolvare

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