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

Cerința
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.

Asta am facut eu :
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
    double B,b,l,x,y,h,d;
    cin>>B>>b>>l;
    x=(B-b)/2;
    y=x+b;
    h=sqrt(l*l-x*x);
    d=sqrt(y*y-h*h);
    cout<<d;
}

Dar e gresit...

Răspunsuri la întrebare

Răspuns de blindseeker90
1
Am atasat imaginea cu trapezul cu notatiile facute de tine.
b-baza mica B-baza mare l-latura congruente d-diagonala h-inaltime
x-distanta de la inaltime la captul bazei cel mai apropriat
y-distanta de la inaltime la capatul bazei mari mai indepartat
Afli in mod corect valoarea lui x(diferenta de baze impartit la 2), y(baza mica la care se adauga x), inaltimea h din Teorema lui pitagora din trunghiul cu laturile h,x,l
Ai ajuns in triunghiul dreptunghic din dreapta cu catetele h si y si ipotenuza d
Aplicand teorema lui Pitagora
d^{2}=h^{2}+y^{2}\Rightarrow d=\sqrt{h^{2}+y^{2}} deci la ultima relatie trebuie sa pui + in loc de -
Anexe:

Kitzuuu: Traiti-ar.....
Alte întrebări interesante