3804 - Raza Cerc Inscris: Difference between revisions
Paul Ungur (talk | contribs) No edit summary |
|||
Line 55: | Line 55: | ||
print("Imposibil") | print("Imposibil") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie cod:== | |||
Funcția validare(a, b, c) verifică dacă laturile a, b și c pot forma un triunghi valid. Aceasta se realizează prin verificarea inegalității triunghiului, care afirmă că suma oricăror două laturi trebuie să fie mai mare decât lungimea celei de-a treia laturi. Dacă această condiție este îndeplinită, funcția returnează True. În caz contrar, se returnează False. | |||
Funcția rezolvare(a, b, c) calculează raza cercului circumscris triunghiului utilizând formula razei circumscrisului unui triunghi dreptunghic. În primul rând, se calculează semiperimetrul triunghiului folosind formula (a + b + c) / 2. Apoi, se calculează raza circumscrisului utilizând formula raza = sqrt(((p - a) * (p - b) * (p - c)) / p), unde p este semiperimetrul. Rezultatul este afișat cu două zecimale folosind formatarea de string "{:.2f}". | |||
În blocul if __name__ == '__main__':, se citesc laturile a, b și c ale triunghiului de la utilizator folosind funcția input() și map(int, input().split()). Apoi, se validează laturile utilizând funcția validare(a, b, c). Dacă laturile formează un triunghi valid, se apelează funcția rezolvare(a, b, c) pentru a calcula și afișa raza cercului circumscris. Dacă laturile nu formează un triunghi valid, se afișează mesajul "Imposibil". |
Revision as of 15:59, 15 May 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) print("Posibil") else: print("Imposibil")
</syntaxhighlight>
Explicatie cod:
Funcția validare(a, b, c) verifică dacă laturile a, b și c pot forma un triunghi valid. Aceasta se realizează prin verificarea inegalității triunghiului, care afirmă că suma oricăror două laturi trebuie să fie mai mare decât lungimea celei de-a treia laturi. Dacă această condiție este îndeplinită, funcția returnează True. În caz contrar, se returnează False. Funcția rezolvare(a, b, c) calculează raza cercului circumscris triunghiului utilizând formula razei circumscrisului unui triunghi dreptunghic. În primul rând, se calculează semiperimetrul triunghiului folosind formula (a + b + c) / 2. Apoi, se calculează raza circumscrisului utilizând formula raza = sqrt(((p - a) * (p - b) * (p - c)) / p), unde p este semiperimetrul. Rezultatul este afișat cu două zecimale folosind formatarea de string "{:.2f}". În blocul if __name__ == '__main__':, se citesc laturile a, b și c ale triunghiului de la utilizator folosind funcția input() și map(int, input().split()). Apoi, se validează laturile utilizând funcția validare(a, b, c). Dacă laturile formează un triunghi valid, se apelează funcția rezolvare(a, b, c) pentru a calcula și afișa raza cercului circumscris. Dacă laturile nu formează un triunghi valid, se afișează mesajul "Imposibil".