Консультация № 199484
01.11.2020, 13:55
0.00 руб.
1 3 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

Подскажите, пожалуйста, как для С++ задать через х и у выделенную в окружности область?
Прикрепленные файлы:
253dc9ad17bdcb8bd8d0ab4bae2f6a5cd81e934e.jpg

Обсуждение

давно
Студент
400828
51
02.11.2020, 13:23
общий
Здравствуйте, svrvsvrv.
Это скорее вопрос из области математики, а не программирования. Тем не менее, не хватает данных. Нужна или сторона квадрата, или радиус окружности.
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
давно
Посетитель
399424
894
02.11.2020, 16:53
общий
Адресаты:
Сторона - х, радиус - r
давно
Студент
400828
51
04.11.2020, 19:01
общий
это ответ
Здравствуйте, svrvsvrv!
Выделенная область ограничена дугами двух окружностей радиуса R.
Центр одной окружности находится в начале координат. Для всех точек, находящихся внутри этой окружности должно выполняться неравенство x^2+y^2<R^2, где x и y - координаты точки.
Центр второй окружности находится в точке с координатами -R, -R. Для всех точек, находящихся внутри этой окружности должно выполняться неравенство (x-x0)^2+(y-y0)^2<R^2, где x и y - координаты точки, а x0 и y0 - координаты центра окружности.
Ниже привожу возможный код решения. Программа выводит Yes, если точка с координатами x, y попадает в заштрихованную область, No в противном случае.
Код:
#include <iostream>
using namespace std;

int main(int argc, char** argv) {
float x, y, r;
do{
cout << "Input R>0: ";
cin >> r;
} while(r<=0);
float x0=-r, y0=-r;
cout << "Input x, y\n";
cin >> x >> y;
cout << ((x*x+y*y<r*r && (x-x0)*(x-x0)+(y-y0)*(y-y0)<r*r)?"Yes\n":"No\n");
system("pause");
return 0;
}

5
ОГРОМНОЕ ВАМ СПАСИБО!
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Форма ответа