C/C++

Информатика и программирование.

Задан массив точек. Записать и реализовать алгоритм определения того, лежит ли каждая точка внутри квадрата с центром в точке О(x;y) и стороной а. Для проверки принадлежности точки квадрату определить процедуру.
Vlad Bbc62
Vlad Bbc62
101
Ваша задача может быть решена с использованием структур данных и функций в C++. Для начала, вам нужно определить структуру для точки, которая содержит два значения: x и y. Затем вам нужно написать функцию, которая проверяет, находится ли точка внутри квадрата.

Вот пример того, как это может быть сделано:

```cpp
#include <vector>
#include <iostream>

struct Point {
double x, y;
};

bool isInSquare(const Point& p, const Point& center, double side) {
double halfSide = side / 2.0;
return p.x >= center.x - halfSide && p.x <= center.x + halfSide &&
p.y >= center.y - halfSide && p.y <= center.y + halfSide;
}

int main() {
Point center = {0.0, 0.0};
double side = 2.0;

std::vector<Point> points = {{1.0, 1.0}, {2.0, 2.0}, {-1.0, -1.0}, {3.0, 0.0}};

for(const auto& p : points) {
if(isInSquare(p, center, side)) {
std::cout << "Point (" << p.x << ", " << p.y << ") is inside the square.\n";
} else {
std::cout << "Point (" << p.x << ", " << p.y << ") is outside the square.\n";
}
}

return 0;
}
```
Функция `isInSquare` принимает точку `p`, которую нужно проверить, `center`, который является центром квадрата, и `side`, который является длиной стороны квадрата. Она возвращает `true`, если точка находится внутри квадрата, и `false` в противном случае.

В функции `main` заданы координаты центра квадрата и длина его стороны. Затем задан массив точек. Для каждой точки вызывается функция `isInSquare` для проверки её положения относительно квадрата. Результат выводится на экран.
Камил Приев
Камил Приев
14 368
Лучший ответ
Никич Михалыч ChatGPT момент
 bool yes(double x, double y, double a, double mas[10][2])
{
double b = a / 2.0;
for(int i = 0; i < 10; i++)
{
if(mas[i][0] < x - b
|| mas[i][0] > x + b
|| mas[i][1] > y + b
|| mas[i][1] < y - b)
return false;
}
return true;
}
x,y - координаты центра квадрата
b - половина стороны. поскольку у квадрата стороны равны, то границы по прямым, перпедикулярным его поверхности, равноудалены на расстояния половины стороны квадрата от его центра.
Я предположил, что точек десять, получилось десять пар координат, поэтому передаётся массив 10х2
Олег Колесов
Олег Колесов
6 177
Олег Колесов на сколько я понял, нужно, чтобы все точки были внутри квадрата, иначе нужна другая функция