Informatică, întrebare adresată de Dannyaa, 8 ani în urmă

Cunoscând laturile unui trapez isoscel, să se calculeze lungimea diagonalei.
Date de intrare
Programul citește de la tastatură numerele reale B, b și l, separate prin spații, reprezentând baza mare, baza mică și lungimea laturilor oblice.
Date de ieșire
Programul va afișa pe ecran numărul d, reprezentând diagonala trapezului.
Restricții și precizări
0 < B, b, l, d < 1000
rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01.



Exemplu
Intrare

6 2 5
Ieșire

6.08276
Explicație
Valoarea bazei mari este 6, baza mică este 2, laturile oblice au valoarea 5. Diagonala trapezului este 6.08276

Răspunsuri la întrebare

Răspuns de arkavas
0
B=2*x+b ⇒ x=(B-b)/2
l²=x²+h²
(b+x)²+h²=d² dar b+x=B-x ⇒ (b+x)²=(B-x)²
Relatia devine
(B-x)²+h²=d²
B²-2*B*x+x²+h²=d² si cum x²+h²=l² iar  x=(B-b)/2 vom avea
B²-2*B*(B-b)/2+l²=d²
de unde d=sqrt(B*B-2*B*(B-b)/2+l*l) - formula pentru diagonala trapezului

Secventa de cod arata asa
................................
int B,b,l,d;
cin>>B>>b>>l;
d=sqrt(B*B-2*B*(B-b)/2+l*l)
cout<<d;

..........................
Verificam d=sqrt(6*6-2*6(6-2)/2+5*5)=sqrt(36-12*4/2+25)=sqrt(36-24+25)=sqrt(37)=6,08276
Alte întrebări interesante