3804 - Raza Cerc Inscris: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
No edit summary
Line 32: Line 32:
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
import math
import math


def validare(a, b, c):
def validare(a, b, c):
    flag = True
     if not (a + b > c and b + c > a and c + a > b):
     if not (a + b > c and b + c > a and c + a > b):
         raise ValueError("Triunghiul nu este valid.")
         flag = False
    return flag
 


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


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__':
if __name__ == '__main__':
     main()
     a, b, c = map(int, input("Introduceți laturile triunghiului (separate prin spații): ").split())
    if validare(a, b, c):
        rezolvare(a, b, c)
    else:
        print("Imposibil")
</syntaxhighlight>
</syntaxhighlight>

Revision as of 16:02, 26 April 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):

   flag = True
   if not (a + b > c and b + c > a and c + a > b):
       flag = False
   return flag


def rezolvare(a, b, c):

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


if __name__ == '__main__':

   a, b, c = map(int, input("Introduceți laturile triunghiului (separate prin spații): ").split())
   if validare(a, b, c):
       rezolvare(a, b, c)
   else:
       print("Imposibil")

</syntaxhighlight>