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;
}