Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
martinishin
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 12
#1

Определить, лежит точка внутри заштрихованной области, вне её или на её границе - C++

20.10.2012, 21:51. Просмотров 1317. Ответов 9
Метки нет (Все метки)

Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.
0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, лежит точка внутри заштрихованной области, вне её или на её границе (C++):

Определить лежит ли точка внутри, вне или на границе заштрихованной области - C++
Задание № 2 Дана точка на плоскости с координатами (x, y). Составить программу, которая будет выводить на экран одно из сообщений...

Лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе? - C++
Дана точка на плоскости с координатами (x, y). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На грани" в зависимости...

Определить, лежит ли точка внутри заштрихованной области - C++
1) Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщ ений «Да», «Нет», «На границе» в...

Определить, лежит ли точка внутри заштрихованной области - C++
Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в...

Определить лежит ли точка внутри или вне круга,ограниченного указанной окружностью, или на окружности - C++
помогите пожалуйста)) Даны координаты точки (x,y), радиус r и координаты центра окружности (x,y. Определить лежит ли точка внутри или...

Определить, лежит ли точка внутри или вне круга, ограниченного указанной окружностью, или на окружности - C++
Даны координаты точки (x,y), радиус r и координаты центра окружности (x,y). Определить, лежит ли точка внутри или вне круга, ограниченного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Psilon
Master of Orion
Эксперт .NET
5893 / 4790 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
20.10.2012, 22:05 #2
martinishin,
C++
1
2
3
4
5
6
7
8
int Check(int x, int y)
{
   if (x*x + y*y < 9 || x*x + y*y > 49 || x < 0 && y < 0)
      return -1;
   if (x*x + y*y > 9 && x*x + y*y < 49)
      return 1;
   return 0;
}
0 - на границе, 1 - внутри, -1 - не принадлежит
1
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.10.2012, 03:47 #3
Цитата Сообщение от Psilon Посмотреть сообщение
C++
1
2
if (x*x + y*y < 9 || x*x + y*y > 49 || x < 0 && y < 0)
 return -1;
эта часть не полностью описана, поэтому при x=0 и y=0 функция вернет 0.
0
Psilon
Master of Orion
Эксперт .NET
5893 / 4790 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
21.10.2012, 04:43 #4
valeriikozlov, ну так граница же, а x=0 && y=0 обработаются первым условием же и вернет -1..
1
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.10.2012, 05:01 #5
Цитата Сообщение от Psilon Посмотреть сообщение
ну так граница же, а x=0 && y=0 обработаются первым условием же и вернет -1..
да тут я промахнулся )
но лучше написать так:
C++
1
2
3
4
5
6
7
8
int Check(int x, int y)
{
   if (x*x + y*y < 9 || x*x + y*y > 49 || x < 0 && y < 0)
      return -1;
   if (x*x + y*y > 9 && x*x + y*y < 49 && ((x!=0 && y<0) || (y!=0 && x<0)))
      return 1;
   return 0;
}
для проверки:
x=0 y=-4
или
x=-4 y=0
0
Psilon
Master of Orion
Эксперт .NET
5893 / 4790 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
21.10.2012, 11:44 #6
valeriikozlov, зачем? В первом условии вычеркивается внутренний круг, внешний круг и 3 четверть. Дальше с x и y вообще париться не надо: достаточно попадания в кольцо. Придумайте входные данные, где моя программа даст сбой, мне даже интересно. Последнее условие у вас выкинет точку 4,4 например...
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.10.2012, 12:49 #7
Цитата Сообщение от Psilon Посмотреть сообщение
Придумайте входные данные, где моя программа даст сбой, мне даже интересно.
я же их писал:
Цитата Сообщение от valeriikozlov Посмотреть сообщение
для проверки:
x=0 y=-4
или
x=-4 y=0
крайний вариант:
C++
1
2
3
4
5
6
7
8
int Check(int x, int y)
{
   if (x*x + y*y < 9 || x*x + y*y > 49 || x < 0 && y < 0)
      return -1;
   if (x*x + y*y > 9 && x*x + y*y < 49 && !((x==0 && y<0) || (y==0 && x<0)))
      return 1;
   return 0;
}
0
Psilon
Master of Orion
Эксперт .NET
5893 / 4790 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
21.10.2012, 12:56 #8
valeriikozlov, Да действительно, надо поправить.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
21.10.2012, 13:02 #9
C++
1
2
3
4
5
6
7
8
d2 = x*x + y*y;
if (d2 >= 9 && d2 <= 49 && !(x < 0 && y < 0))
{
    if (d2 > 9 && d2 < 49 && !(x == 0 && y < 0) && !(y == 0 && x < 0))
        да (внутри)
    else на границе
}
else нет
2
Psilon
Master of Orion
Эксперт .NET
5893 / 4790 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
21.10.2012, 13:09 #10
Thinker, кстати да, расстояние лучше сразу запомнить

Добавлено через 6 минут
valeriikozlov, да, ваше условие вернее (последнее), хотя не мешало бы убрать лишние отрицания
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 13:09
Привет! Вот еще темы с ответами:

Как определить, что точка лежит на границе области - C++
Даны действительные числа x и y. Определить, принадлежит ли точка с координатами x,y заштрихованной области, лежит вне этой области или на...

Даны отрезки [a, b] и [c, d] и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их - C++
Даны отрезки и и точка A с координатой х. Определить, принадлежит ли данная точка одному из этих отрезков, обоим или лежит вне их

Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры) - C++
Нужно написать программу вычисления местонахождения точки относительно фигуры(лежит ли данная точка внутри неё, на контуре или вне фигуры)....

Проверить, находится ли точка внутри, на границе, или за пределами треугольника - C++
Дан треугольник и K точек. Для каждой точки нужно определить, где она находится – внутри, на границе, или снаружи. Заранее спасибо. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.10.2012, 13:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru