3901 - Latură Triunghi

De la Universitas MediaWiki

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 "Nu au fost respectate cerintele 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

# 3901 - LaturaTriunghi
# 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)