Esercizio no.6:soluzione
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double xa, ya, xb, yb, xc, yc;
cout << “Inserisci le coordinate dei tre punti (xa ya xb yb xc yc): “;
if (!(cin >> xa >> ya >> xb >> yb >> xc >> yc)) {
cout << “Input non valido.\n”;
return 0;
}
const double EPS = 1e-9;
auto samePoint = [&](double x1, double y1, double x2, double y2) {
return fabs(x1 – x2) <= EPS && fabs(y1 – y2) <= EPS;
};
// Triangolo degenere se due (o più) vertici coincidono
if ( samePoint(xa, ya, xb, yb) ||
samePoint(xa, ya, xc, yc) ||
samePoint(xb, yb, xc, yc) ) {
cout << “Triangolo degenere: due o piu’ vertici coincidono.\n”;
return 0;
}
// Distanze dei lati
double AB = hypot(xb – xa, yb – ya);
double BC = hypot(xc – xb, yc – yb);
double CA = hypot(xa – xc, ya – yc);
double perimetro = AB + BC + CA;
cout << fixed << setprecision(6);
cout << “Perimetro del triangolo: ” << perimetro << ‘\n’;
return 0;
}