етижи пассатижи using namespace std для кого придумали?
#include <iostream>
#include <cmath>
#include <locale>
using namespace std;
double distance(double x1, double y1, double x2, double y2) {
return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
}
bool isRectangle(double x_A, double y_A, double x_B, double y_B, double x_C, double y_C, double x_D, double y_D) {
double AB = distance(x_A, y_A, x_B, y_B);
double BC = distance(x_B, y_B, x_C, y_C);
double CD = distance(x_C, y_C, x_D, y_D);
double DA = distance(x_D, y_D, x_A, y_A);
bool sidesEqual = (AB == CD) && (BC == DA);
double vectorAB_x = x_B - x_A;
double vectorAB_y = y_B - y_A;
double vectorBC_x = x_C - x_B;
double vectorBC_y = y_C - y_B;
double vectorCD_x = x_D - x_C;
double vectorCD_y = y_D - y_C;
double vectorDA_x = x_A - x_D;
double vectorDA_y = y_A - y_D;
bool rightAngles = (vectorAB_x * vectorBC_x + vectorAB_y * vectorBC_y == 0) &&
(vectorBC_x * vectorCD_x + vectorBC_y * vectorCD_y == 0) &&
(vectorCD_x * vectorDA_x + vectorCD_y * vectorDA_y == 0) &&
(vectorDA_x * vectorAB_x + vectorDA_y * vectorAB_y == 0);
return sidesEqual && rightAngles;
}
int main() {
setlocale(LC_ALL, "Russian");
double x_A, y_A, x_B, y_B, x_C, y_C, x_D, y_D;
cout << "Введите через пробел координаты точки A (x y): " << endl;
cin >> x_A >> y_A;
cout << "Введите через пробел координаты точки B (x y): " << endl;
cin >> x_B >> y_B;
cout << "Введите через пробел координаты точки C (x y): " << endl;
cin >> x_C >> y_C;
cout << "Введите через пробел координаты точки D (x y): " << endl;
cin >> x_D >> y_D;
if (isRectangle(x_A, y_A, x_B, y_B, x_C, y_C, x_D, y_D)) {
cout << "Фигура является прямоугольником." << endl;
} else {
cout << "Фигура не является прямоугольником." << endl;
}
cout << "Нажмите Enter, чтобы выйти..." << endl;
cin.ignore(); // очищаем буфер ввода
cin.get(); // ждем нажатия клавиши
return 0;
}
не зря в вузе учился :D
но ты протестируй, если че