👤

Napisz program, który wczyta współrzędne 4 punktów A(x1,y1), B(x2,y2), C(x3,y3), D(x4,y4) sprawdzi czy mogą tworzyć kwadrat, jeśli tak to program ma obliczyć obwód kwadratu. C++​

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;

}

On Studier: Inne Pytanie