online: 2; azi: 1018; total: 53024 Manual clasa a x a - Implementarea structurilor de date - Inregistrarea

Manual clasa a X a

Implementarea structurilor de date

Inregistrarea

Într-o înregistrare, se păstrează atributele unui triunghi: care sunt cele 3 segmente ce reprezintă laturile triunghiului din plan. Atributele segmentului sunt punctele de la extremităţile lui (precizate prin coordonatele lor). Afişaţi dacă:
a) mărimile celor trei segmente pot fi mărimile laturilor unui triunghi;
b) cele trei segmente formează un triunghi.
# include < iostream >
# include < cmath >
using namespace std ;
struct Segment {
double x1, y1, x2, y2;
};
struct Triunghi {
Segment AB, BC, CA;
};
double distanta (Segment seg ) {
return sqrt ( pow (seg.x2 - seg.x1, 2 ) + pow (seg.y2 - seg.y1, 2 ));
}
bool suntLaturiTriunghi ( double a, double b, double c) {
return (a + b > c) && (b + c > a) && (a + c > b);
}
bool esteTriunghi (Triunghi t) {
double a = distanta ( t.AB );
double b = distanta ( t.BC );
double c = distanta (t.CA);
return suntLaturiTriunghi (a, b, c);
}
int main () {
Triunghi t;
cout << " Introduceti coordonatele punctelor A, B si C:" << endl ;
cin >> t.AB.x1 >> t.AB.y1 >> t.AB.x2 >> t.AB.y2;
cin >> t.BC.x1 >> t.BC.y1 >> t.BC.x2 >> t.BC.y2;
cin >> t.CA.x1 >> t.CA.y1 >> t.CA.x2 >> t.CA.y2;
double a = distanta ( t.AB );
double b = distanta ( t.BC );
double c = distanta (t.CA);
if ( suntLaturiTriunghi (a, b, c)) {
cout << "Cele trei segmente pot forma laturile unui triunghi." << endl ;
} else {
cout << "Cele trei segmente nu pot forma laturile unui triunghi." << endl ;
}
if ( esteTriunghi (t)) {
cout << "Cele trei segmente formeaza un triunghi." << endl ;
} else {
cout << "Cele trei segmente nu formeaza un triunghi." << endl ;
}
return 0 ;
}

Programul citeste coordonatele a 3 puncte care definesc cele 3 segmente ale unui triunghi. Se calculeaza apoi lungimile segmentelor si se verifica daca pot fi laturile unui triunghi, apoi se verifica daca cele 3 segmente formeaza intr-adevar un triunghi.