3804 - Raza Cerc Inscris: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Tag: visualeditor
Paul Ungur (talk | contribs)
Tag: visualeditor
Line 33: Line 33:
import math
import math


a, b, c = map(float, input().split())
def validare(a, b, c):
    if not (a + b > c and b + c > a and c + a > b):
        raise ValueError("Triunghiul nu este valid.")


# Verificăm condiția de existență a triunghiului
def rezolvare(a, b, c):
if a + b > c and a + c > b and b + c > a:
     p = (a + b + c) / 2
     # Calculăm semiperimetrul
     r = math.sqrt(((p - a) * (p - b) * (p - c)) / p)
    s = (a + b + c) / 2
     # Calculăm aria triunghiului cu formula lui Heron
    area = math.sqrt(s * (s - a) * (s - b) * (s - c))
    # Calculăm raza cercului înscris cu formula lui Euler
    r = area / s
     print("{:.2f}".format(r))
     print("{:.2f}".format(r))
else:
 
     print("Imposibil")
def main():
     try:
        a, b, c = map(int, input("Introduceți laturile triunghiului (separate prin spații): ").split())
        validare(a, b, c)
        rezolvare(a, b, c)
    except ValueError as ve:
        print(ve)
 
if __name__ == '__main__':
    main()
</syntaxhighlight>
</syntaxhighlight>

Revision as of 11:02, 25 March 2023

Cerința

Se dau lungimile laturilor unui triunghi. Aflați raza cercului înscris triunghiului.

Date de intrare

Programul citește de la tastatură numerele a, b, c, reprezentand lungimile laturilor triunghiului.

Date de ieșire

Programul va afișa pe ecran numărul r, reprezentând lungimea razei cercului înscris cu 2 zecimale exacte, daca triunghiul este valid, altfel se va afisa mesajul Imposibil.

Restricții și precizări

1 ≤ a, b, c ≤ 1000

Exemplul 1:

Intrare 3 4 5

Ieșire 1.00

Exemplul 2:

Intrare

4 5 10

Ieșire

Imposibil

Rezolvare

<syntaxhighlight lang="python" line="1"> import math

def validare(a, b, c):

   if not (a + b > c and b + c > a and c + a > b):
       raise ValueError("Triunghiul nu este valid.")

def rezolvare(a, b, c):

   p = (a + b + c) / 2
   r = math.sqrt(((p - a) * (p - b) * (p - c)) / p)
   print("{:.2f}".format(r))

def main():

   try:
       a, b, c = map(int, input("Introduceți laturile triunghiului (separate prin spații): ").split())
       validare(a, b, c)
       rezolvare(a, b, c)
   except ValueError as ve:
       print(ve)

if __name__ == '__main__':

   main()

</syntaxhighlight>