Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2022, 11:01   #1
Ladoga
Пользователь
 
Регистрация: 28.01.2022
Сообщений: 17
По умолчанию C++ Прямые под произвольным углом

Здравствуйте!
Не могу найти правильное решение.
Подскажите, где ошибка?

Напишите программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (xx, yy - действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы). В случае, если точка внутри заштрихованной области -- выведите слово "Inside", если снаружи - "Outside".
Sample Input 1:

0 0
Sample Output 1:

Inside
Sample Input 2:

2 -1
Sample Output 2:
Outside
#include <iostream>
using namespace std;
int main() {

double x, y;
cin >> x >> y;

if(((y<=-1,5*x+7)&&(y<=4))||
((y>=0,6*x+1,6)&&(x==2))||
((y>=-2)&&(y<=0,5*x-1)&&(x==2))||
((y>=-2)&&(y>=1,5*x+1)&&(y<=4)))

cout << "Inside\n";
else
cout << "Outside\n";

return 0;
}
Изображения
Тип файла: png 0051.png (4.7 Кб, 19 просмотров)
Ladoga вне форума Ответить с цитированием
Старый 31.01.2022, 12:36   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от Ladoga Посмотреть сообщение
((y<=-1,5*x+7)&&(y<=4))
В это условие попадает, например, вся 3 четверть.
ForenLi вне форума Ответить с цитированием
Старый 31.01.2022, 12:41   #3
Ladoga
Пользователь
 
Регистрация: 28.01.2022
Сообщений: 17
По умолчанию

if(((x>=2)&&(y<=4)&&(y>=-2)&&(y<=-1.5*x+7)&&(y>=-0.6+1.6))||
((x<=2)&&(y<=4)&&(y>=-2)&&(y>=0.5*x-1)&&(y<=1.5*x+1)))

Вот так то же не получается
Ladoga вне форума Ответить с цитированием
Старый 31.01.2022, 12:54   #4
Ladoga
Пользователь
 
Регистрация: 28.01.2022
Сообщений: 17
По умолчанию

правильное

if(((x>=2)&&(y<=4)&&(y>=-2)&&(x<=6)&&(y<=-1.5*x+7)&&(y>=-0.5*x+1))||
((x<=2)&&(y<=4)&&(x>=-2)&&(y>=-2)&&(y>=0.5*x-1)&&(y<=1.5*x+1)))
Спасибо
Ladoga вне форума Ответить с цитированием
Старый 31.01.2022, 12:55   #5
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от Ladoga Посмотреть сообщение
(y<=4)&&(y>=-2)
Лишнии
Цитата:
Сообщение от Ladoga Посмотреть сообщение
(y>=-0.6+1.6)
Явно неправильно. Должно быть (0, 1) и (2, 0)
ForenLi вне форума Ответить с цитированием
Старый 31.01.2022, 13:02   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,553
По умолчанию

Решение напрашивается с первого взгляда. Нужно сместить координаты - ввести вспомогательную переменную x2 = x - 2. Тогда получим симметричную относительно х2=0 фигуру, расчёт ведём для Abs(x2): всего 2 прямые. Просто, как утюг.
Код:
x2 = Abs(x-2) ;
if(y>=x2*-0.5) && (y<=4-x2*1.5) ....
Можно не вводить вспомогательную переменную. Вместо x2 вставлять Abs(x-2). Чтобы проще запутаться
Гениальное - завсегда просто. © И.Швейк
Название неправильное. Раз есть графическое изображение, то прямые - под совершенно конкретным (для данной задачи ) углом.
Изображения
Тип файла: jpg X2.JPG (22.9 Кб, 17 просмотров)

Последний раз редактировалось digitalis; 31.01.2022 в 13:27.
digitalis вне форума Ответить с цитированием
Старый 31.01.2022, 16:06   #7
Ladoga
Пользователь
 
Регистрация: 28.01.2022
Сообщений: 17
По умолчанию

Спасибо большое.
Ladoga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прямые под произвольным углом. Окружности Ladoga Помощь студентам 7 28.01.2022 14:22
Наложение watermark'ов под углом Dexes PHP 0 05.04.2012 13:20
label под углом vova_ Общие вопросы Delphi 2 22.03.2012 05:51
Текст под углом в StringGrid artemavd Общие вопросы Delphi 7 25.07.2009 20:17
Графика под углом BOBAH13 Мультимедиа в Delphi 5 12.09.2008 21:18