3901 - Latură Triunghi: Difference between revisions

From Bitnami MediaWiki
Adrian (talk | contribs)
No edit summary
Adrian (talk | contribs)
No edit summary
 
Line 7: Line 7:
Î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 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".
Î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 ==
== Restricții și precizări ==
* 1 ⩽ '''latura1''', '''latura2''' ⩽ 1000
* 1 ⩽ '''latura1''', '''latura2''' ⩽ 1000

Latest revision as of 11:12, 23 May 2023

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>