3901 - Latură Triunghi: Difference between revisions

From Bitnami MediaWiki
Adrian (talk | contribs)
Pagină nouă: == 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...
 
Adrian (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
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
Line 32: Line 32:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 3901 - LaturaTriunghi
# 3901 - LaturaTriunghi
# Importam functia sqrt, functia cos si pi din modulul math
from math import cos, sqrt, pi
from math import cos, sqrt, pi




def laturatriunghi():
def validare(latura1, latura2, unghi):
    latura1 = int(input())
     # Daca datele sunt invalide v-om face raise la eroarea ValueError
    latura2 = int(input())
     unghi = int(input())


     conditii = (
     conditii = (
Line 46: Line 45:
     )
     )


     if all(conditii):
     if not all(conditii):
         print("Datele de intrare corespund restricțiilor impuse")
         raise ValueError


        latura3 = sqrt(
            latura1 ** 2 + latura2 ** 2 - 2 * latura1 * latura2 *
            cos(pi * unghi / 180)
        )


         print(f"{latura3:.2f}")
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)
    )


     else:
     # Afisam rezultatul cu doua zecimale rotunjite folosind :.2f
        print("Nu au fost respectate cerintele impuse")
    print(f"{latura3:.2f}")




if __name__ == '__main__':
if __name__ == '__main__':
     laturatriunghi()
     # 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>
</syntaxhighlight>

Latest revision as of 11:12, 23 May 2023

Cerința[edit]

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

Date de intrare[edit]

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]

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]

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

Exemplu 1[edit]

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


Exemplu 2[edit]

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


Rezolvare[edit]

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