Реализовать программу на c++.. Составить программу, которая
Реализовать программу на c++.. Составить программу, которая печатает True,если точка с координатами (x,y) принадлежит заданным закрашенным(заштрихованным) областям, показанным на рисунке и False в противном случае.
Для решения данной задачи можно воспользоваться геометрическим подходом. Заданные закрашенные области можно представить в виде геометрических фигур, таких как круги, прямоугольники и треугольники.
Программа будет принимать на вход координаты точки (x, y) и проверять, принадлежит ли эта точка одной из заданных областей. Для этого будем последовательно проверять каждую область.
Пример реализации программы на C++:
#include <iostream>
#include <cmath>
bool checkCircle(double x, double y) {
// Проверка принадлежности точки кругу
double centerX = 2.0;
double centerY = 2.0;
double radius = 1.0;
double distance = sqrt(pow(x - centerX, 2) + pow(y - centerY, 2));
return distance <= radius;
}
bool checkRectangle(double x, double y) {
// Проверка принадлежности точки прямоугольнику
double left = 1.0;
double right = 3.0;
double top = 1.0;
double bottom = 3.0;
return x >= left && x <= right && y >= top && y <= bottom;
}
bool checkTriangle(double x, double y) {
// Проверка принадлежности точки треугольнику
double x1 = 0.0;
double y1 = 0.0;
double x2 = 2.0;
double y2 = 4.0;
double x3 = 4.0;
double y3 = 0.0;
double a = (x1 - x) * (y2 - y1) - (x2 - x1) * (y1 - y);
double b = (x2 - x) * (y3 - y2) - (x3 - x2) * (y2 - y);
double c = (x3 - x) * (y1 - y3) - (x1 - x3) * (y3 - y);
return (a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0);
}
int main() {
double x, y;
std::cout << "Введите координаты точки (x, y): ";
std::cin >> x >> y;
bool isInCircle = checkCircle(x, y);
bool isInRectangle = checkRectangle(x, y);
bool isInTriangle = checkTriangle(x, y);
if (isInCircle || isInRectangle || isInTriangle) {
std::cout << "True" << std::endl;
} else {
std::cout << "False" << std::endl;
}
return 0;
}
В данной программе используются функции checkCircle
, checkRectangle
и checkTriangle
, которые проверяют принадлежность точки кругу, прямоугольнику и треугольнику соответственно. Если точка принадлежит хотя бы одной из областей, программа выводит "True", иначе - "False".