Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на языке С++

Odaliska Ученик (242), открыт 2 дня назад
Задана точка на плоскости с координатами (x, y). Выведите одно из сообщений (Да, Нет, На границе) в зависимости от того, находится ли точка внутри заштрихованной области, за пределами заштрихованной области или на ее границе. Область задана следующим образом:
Написать код на с++.
2 ответа
speexz Мыслитель (7727) 2 дня назад
 using namespace std; 

int main() {
double x, y;
cin >> x >> y;

double r = 10.0;
double distanceSquared = x * x + y * y;

bool insideCircle = distanceSquared < r * r;
bool onCircle = abs(distanceSquared - r * r) < 1e-9;
bool aboveLine = y > -x;
bool onLine = fabs(y + x) < 1e-9;

if ( (onCircle && aboveLine) || (onLine && insideCircle) ) {
cout << "На границе" << endl;
} else if (insideCircle && aboveLine) {
cout << "Да" << endl;
} else {
cout << "Нет" << endl;
}

return 0;
}
Николай Веселуха Высший разум (384883) 2 дня назад
 #include <cmath> 
#include <iostream>
using namespace std;
int main() {
constexpr auto rr = 100.0;
constexpr auto eps = 1e-12;
double x, y;
cin >> x >> y;
const auto a = x * x + y * y;
const auto b = y + x;
if (fabs(b) < eps && a <= rr || fabs(a - rr) < eps && 0 <= b) puts("На границе");
else if (rr < a || b < 0) puts("Нет");
else puts("Да");
}
Похожие вопросы