3805 - Rază Cerc Circumscris

From Bitnami MediaWiki
Revision as of 18:06, 22 April 2023 by Vardai Erwin (talk | contribs) (→‎Exemplul 1)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerință[edit | edit source]

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

Date de intrare[edit | edit source]

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

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa pe ecran numărul R, reprezentând lungimea razei cercului circumscris cu 2 zecimale exacte, daca triunghiul este valid, altfel se va afisa mesajul Imposibil. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări[edit | edit source]

  • 1 ≤ a, b, c ≤ 1000

Exemplul 1[edit | edit source]

Intrare
3
4
5
Ieșire
Datele de intrare corespund restricțiilor impuse.
2.50

Exemplul 2[edit | edit source]

Intrare
4
5
10
Ieșire
Datele de intrare corespund restricțiilor impuse.
Imposibil

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

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


  1. Functia pentru validarea lungimilor laturilor triunghiului

def validare(a, b, c):

   # Verifica daca fiecare lungime de latura este intre 1 si 1000
   if 1 <= a <= 1000 and 1 <= b <= 1000 and 1 <= c <= 1000:
       return True
   return False


  1. Functia pentru calcularea razei cercului circumscris triunghiului

def raza_cercului(a, b, c):

   # Verifica daca lungimile sunt pozitive si conform conditiei triunghiului
   if a <= 0 or b <= 0 or c <= 0:
       print("Imposibil")
   elif a + b <= c or b + c <= a or c + a <= b:
       print("Imposibil")
   else:
       # Calculeaza semiperimetrul triunghiului
       s = (a + b + c) / 2
       # Calculeaza aria triunghiului folosind formula lui Heron
       area = math.sqrt(s * (s - a) * (s - b) * (s - c))
       # Calculeaza raza cercului circumscris folosind formula ariei si lungimile laturilor
       radius = (a * b * c) / (4 * area)
       # Afiseaza rezultatul cu doua zecimale exacte
       print("{:.2f}".format(radius))


if __name__ == "__main__":

   # Citeste lungimile laturilor triunghiului de la tastatura
   a = int(input("Introduceti lungimea primei laturi: "))
   b = int(input("Introduceti lungimea celei de-a doua laturi: "))
   c = int(input("Introduceti lungimea celei de-a treia laturi: "))
   # Verifica daca lungimile laturilor sunt valide
   if validare(a, b, c):
       print("Datele de intrare corespund restricțiilor impuse.")
       # Calculeaza raza cercului circumscris si o afiseaza
       raza_cercului(a, b, c)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>