В строках if x1=x2 and x3=x4 and y1=y4 and y2=y3: вместо оператора сравнения == используется оператор присваивания =. Это приведет к тому, что условие всегда будет ложным, и блок кода внутри if никогда не будет выполнен. Кроме того, условие само по себе смысла не имеет, так как оно сравнивает разные точки на плоскости.
В строке l=sqrt((x2-x1)^2+(y2-y1)^2) оператор ^ используется для возведения в степень, но этот оператор не работает с целыми числами. Вместо этого нужно использовать оператор * для умножения.
Этот код сначала считывает координаты четырех точек с клавиатуры. Затем он проверяет, что точки расположены на одной прямой и рассчитывает площадь прямоугольника. В противном случае рассчитывается произведение сторон прямоугольника. Результат выводится на экран.
Вот Ваш исправленный код
x1 = int(input("x1 - "))
y1 = int(input("y1 - "))
x2 = int(input("x2 - "))
y2 = int(input("y2 - "))
x3 = int(input("x3 - "))
y3 = int(input("y3 - "))
x4 = int(input("x4 - "))
y4 = int(input("y4 - "))
if x1 == x2 and x3 == x4 and y1 == y4 and y2 == y3:
Answers & Comments
#include <cmath>
#include <iostream>
int main() {
int x1, y1, x2, y2, x3, y3, x4, y4;
std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
if (x1 == x3 && x2 == x4 && y1 == y2 && y3 == y4) {
int s = (x2 - x1) * (y3 - y2);
std::cout << s << std::endl;
} else {
double l = std::sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
double h = std::sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
std::cout << h * l << std::endl;
}
return 0;
}
Этот код сначала считывает координаты четырех точек с клавиатуры. Затем он проверяет, что точки расположены на одной прямой и рассчитывает площадь прямоугольника. В противном случае рассчитывается произведение сторон прямоугольника. Результат выводится на экран.
Вот Ваш исправленный код
x1 = int(input("x1 - "))
y1 = int(input("y1 - "))
x2 = int(input("x2 - "))
y2 = int(input("y2 - "))
x3 = int(input("x3 - "))
y3 = int(input("y3 - "))
x4 = int(input("x4 - "))
y4 = int(input("y4 - "))
if x1 == x2 and x3 == x4 and y1 == y4 and y2 == y3:
s = (x2 - x1) * (y3 - y2)
print(s)
else:
l = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
h = math.sqrt((x3 - x2) ** 2 + (y3 - y2) ** 2)
print(h * l)