3814 - Arie Patrulater Inscriptibil

De la Universitas MediaWiki

Cerinţa

Se dau lungimile laturilor patrulaterului inscriptibil ABCD. Aflati aria acestuia.

Date de intrare

Programul citește de la tastatură lungimile laturilor AB, BC, CD, AD.

Date de ieşire

Programul va afișa pe ecran aria patrulaterului, cu 3 zecimale exacte.

Restricții și precizări

  • 1 ⩽ AB, BC, CD, AD ⩽ 1000

Exemplul 1

Intrare
13
14
3
13
Ieșire
Datele introduse corespund restricțiilor impuse.
100.123


Exemplul 2

Intrare
13
14
3
n
Ieșire
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

# 3814  Arie Patrulater Inscriptibil

# Definim funcția de verificare a valorilor laturilor
def verificare(l_1, l_2, l_3, l_4):
    # Verificăm dacă laturile respectă restricțiile problemei
    if 1 <= l_1 <= 1000 and 1 <= l_2 <= 1000 and 1 <= l_3 <= 1000 and 1 <= l_4 <= 1000:
        # Dacă valorile sunt valide, returnăm True
        return True
    else:
        # Dacă valorile nu sunt valide, ridicăm o excepție
        raise ValueError


def calculeaza_radical(n):
    return n ** 0.5


def calculeaza_arie_perimetru(l_1, l_2, l_3, l_4):
    # Semiperimetrul
    s_perimetru = (l_1 + l_2 + l_3 + l_4) / 2

    # Aria patrulaterului
    aria = calculeaza_radical((s_perimetru - l_1) * (s_perimetru - l_2) *
                              (s_perimetru - l_3) * (s_perimetru - l_4))

    # Rotunjim suma obținută la 3 zecimale
    return round(aria, 3)


# Verificăm dacă acest script este rulat direct (nu este importat ca modul)
if __name__ == "__main__":
    try:
        # Citim laturile de la utilizator
        latura_1 = float(input("Introduceti prima latura: "))
        latura_2 = float(input("Introduceti a doua latura: "))
        latura_3 = float(input("Introduceti a treia latura: "))
        latura_4 = float(input("Introduceti a patra latura: "))

        # Verificăm dacă datele introduse sunt valide
        if verificare(latura_1, latura_2, latura_3, latura_4):
            # Dacă datele sunt valide, afișăm un mesaj de confirmare
            print("Datele introduse corespund restricțiilor impuse.")

        # Calculăm și afișăm aria
        print(calculeaza_arie_perimetru(latura_1, latura_2, latura_3, latura_4))

    # Tratăm cazul în care datele introduse nu sunt valide
    except ValueError:
        # Afișăm un mesaj de eroare
        print("Datele introduse nu corespund restricțiilor impuse.")