Odpowiedź :
#include <iostream>
#include <cmath>
using namespace std;
struct punkt {
double x, y;
};
double odleglosc(punkt a, punkt b) {
return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
}
punkt srodek_miedzy(punkt a, punkt b) {
punkt p;
p.x = (a.x + b.x) / 2;
p.y = (a.y + b.y) / 2;
return p;
}
int main() {
punkt p1, p2, p3, p4;
cout << "Punkt A\nx = ";
cin >> p1.x;
cout << "y = ";
cin >> p1.y;
cout << "Punkt B\nx = ";
cin >> p2.x;
cout << "y = ";
cin >> p2.y;
cout << "Punkt C\nx = ";
cin >> p3.x;
cout << "y = ";
cin >> p3.y;
cout << "Punkt D\nx = ";
cin >> p4.x;
cout << "y = ";
cin >> p4.y;
double bok = odleglosc(p1, p2);
double przekatna = bok;
punkt srodek = srodek_miedzy(p1, p2);
if (odleglosc(p1, p3) > przekatna) {
srodek = srodek_miedzy(p1, p3);
} else if (odleglosc(p1, p4) > przekatna) {
srodek = srodek_miedzy(p1, p4);
} else {
bok = odleglosc(p1, p3);
}
if (odleglosc(srodek, p1) == odleglosc(srodek, p2)
&& odleglosc(srodek, p2) == odleglosc(srodek, p3)
&& odleglosc(srodek, p3) == odleglosc(srodek, p4)
&& bok > 0) {
cout << "Obwod kwadratu: " << 4 * bok;
} else {
cout << "Podane punkty nie tworza kwadratu";
}
return 0;
}