Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.11.2019
Сообщений: 3

Попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную область

13.06.2023, 22:46. Показов 718. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста. Нужно написать программу, которая определяет, попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную область.
Миниатюры
Попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную область  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2023, 22:46
Ответы с готовыми решениями:

Попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную область
Никак не получается написать условия попадения в закрашенные области. Помогите пожалуйста, буду премного благодарен.

Попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную область
Посидел, покумекал, немного написал код, но так и не получается подобрать уравнения заштрихованной области в центре и справа. Помогите...

Написать программу, которая определяет, попадает ли точка с введенными с клавиатуры координатами (x,y) в заштрихованную
Напишите пожалуйста программу в с++ был бы очень благодарен, я чуть начал но саму программу для вычисления не могу написать #include...

5
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
14.06.2023, 00:13
Что-то в этом роде
C++
1
2
if ((x-0.5)*(x-0.5) + (y-0.5)*(y-0.5)<=0.25 || (x+0.5)*(x+0.5) + (y+0.5)*(y+0.5)<=0.25 || x*x +y*y  <=0.25))
     && !((x-0.5)*(x-0.5) + (y+0.5)*(y+0.5)>0.25  || (x+0.5)*(x+0.5) + (y-0.5)*(y-0.5)>0.25_
Добавлено через 3 минуты
Идея вот в чем.
Круг в первой + Круг в третей четверти +центральный круг - круги во 2-й и 4-й четвертях

Добавлено через 3 минуты
Проверь скобочки. Мог ошибиться

Добавлено через 3 минуты
Не, ошибся я. Там еще вырезаются 2 линзочки.....
Но писать уже лень

Добавлено через 26 минут
Как будто так правильней будет
C++
1
2
3
4
5
double r=0.5;
if ( (x+r)*(x+r)+(y+r)*(y+r)<=r*r
  && (x-r)*(x-r)+(y-r)*y-r)<r*r && !(x*x+y*y <=r*r)) 
  && (x*x+y*y <=r*r  && !( (x+r)*(x+r)+(y+r)*(y+r)<=r*r && ( (x-r)*(x-r)+(y+r)*(y+r)<=r*r &&
  (x+r)*(x+r)+(y-r)*(y-r)<=r*r   && (x-r)*(x-r)+(y-r)*(y-r)<=r*r))
Но мог запутаться
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,009
14.06.2023, 03:41
Наверно, можно упростить, но это (скорей всего) не ко мне.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const double num = 0.5;
//---------------------------------------------------------------------------
bool InOutCircle (double x, double y, double R, bool in)
{
  if (in)
    return x * x + y * y <= R * R;
 
  return x * x + y * y >= R * R;
}
//---------------------------------------------------------------------------
bool IsDotInArea (double x, double y)
{
  return (InOutCircle(x, y, num, 0) &&
         (InOutCircle(x - num, y - num, num, 1) || InOutCircle(x + num, y + num, num, 1))) ||
         (InOutCircle(x, y, num, 1) &&
          InOutCircle(x - num, y - num, num, 0) && InOutCircle(x + num, y + num, num, 0) &&
          InOutCircle(x + num, y - num, num, 0) && InOutCircle(x - num, y + num, num, 0));
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.06.2023, 09:07
Можно ли так?
https://www.cyberforum.ru/cgi-bin/latex.cgi?\left\{\begin{matrix}<br />
(|x|-r)^2+(|y|-r)^2 \geq r^2 & if & x^2+y^2 < r^2\\ <br />
(|x+y|-2r)^2+(x-y)^2 \leq 2r^2 & otherwise<br />
\end{matrix}\right.
где r=0.5
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
14.06.2023, 10:04
Ну да. В центральной, но не в других + 1-я и 3-я четверть без центральной.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
typedef struct {
 double x, y, r;
                     } KR;
typedef struct {
 double x, y;
                     } P;
bool inkr(KR  &kr,  P &p) {
  return (p.x-kr.x )* (p.x-kr.x) + (p.y - kr.y) * (p.y - kr.y) <= kr.r * kr.r);
}
int main()
 P p; KR kr[5];
 cin >> p.x >> p.y;
 for (int i=0; i<5; i++) 
       kr[i].r = 0.5;
 kr[0].x = kr[0].y = 0;
 kr[1].x =  kr[1].y = 0.5;
 kr[2].x = -0.5;  kr[2].y = 0.5;
 kr[3].x =  kr[3].y = -0.5;
 kr[4].x =  0.5; kr[4].y = -0.5;
 bool ret = inkr(kr[0], p);
 if (ret) {
   for (int i= 1; i<5; i++)
      if inrr(kr[i], p) {
         cout << "YES";
        return 0;
     }
     cout << "NO";
     return 0;
  }
  else {
    ret = false;
    for (int i= 1; i<5; i+=2)
       if inrr(kr[i], p) ret = true;
    if (inkr(kr[0], p) ret = false;
    cout >> ret ? "YES" : "NO";
    return 0;
}
Получилось длинно, но внятно
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
14.06.2023, 12:15
Лучший ответ Сообщение было отмечено zss как решение

Решение

Цитата Сообщение от Volga_ Посмотреть сообщение
Можно ли так?
Вот предлагаю код по предложенному условию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
bool f(double x, double y, double r)
{
    double dx, dy;
    if (x * x + y * y < r * r)
    {
        dx = fabs(x) - r; dy = fabs(y) - r;
        return dx * dx + dy * dy >= r * r;
    }
    dx = fabs(x + y) - 2 * r; dy = x - y;
    return dx * dx + dy * dy <= 2 * r * r;
}
int main()
{
    double x, y;
    std::cout << "x = "; std::cin >> x;
    std::cout << "y = "; std::cin >> y;
    if (f(x, y, 0.5)) std::cout << "Inside";
    else std::cout << "Outside";
    return 0;
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2023, 12:15
Помогаю со студенческими работами здесь

Определить, попадает ли точка с координатами (х, у) в заштрихованную область
Определить попадает точка с координатами х, у в заштрихованную область. Попадание на границу области считать попаданием в область. ...

Определить, попадает ли точка с координатами (х,у) в заштрихованную область
Вот скрин

Определить попадает точка с координатами х, у в заштрихованную область
Определить попадает точка с координатами х, у в заштрихованную область

Определить попадает точка с координатами х, у в заштрихованную область
Определить попадает точка с координатами х, у в заштрихованную область

Определить, попадает ли точка с координатами x, y в заштрихованную область
Вот рисунок


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru