1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
|
|
1 | |
Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области D, и13.10.2016, 19:40. Показов 9203. Ответов 11
Метки нет (Все метки)
Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области D, изображенной на заданном рисунке.
помогите решить,хотя бы часть с формулами,ибо ни как не могу хотя бы основу извлечь,что бы строить программу. Заранее спасибо!
0
|
13.10.2016, 19:40 | |
Ответы с готовыми решениями:
11
Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области Написать программу с ++, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области D, изображенно Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области D, изображенно |
Любитель чаепитий
|
|
13.10.2016, 19:57 | 2 |
Ну условие, насколько я понял, должно быть примерно таким:
x <= 1 && y <= 1 && x >= -1 && y >= -1 Не по теме:
0
|
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
|
|
13.10.2016, 20:17 | 3 |
abs(x)<=1 && abs(y)<=1
0
|
11 / 11 / 6
Регистрация: 10.06.2014
Сообщений: 21
|
|
13.10.2016, 20:22 | 4 |
Не совсем так. Данное условие помогает найти принадлежность точки к площади квадрата, который перекисает ось координат в точка (1,0), (0,1), (-1,0) и (0,-1). В случае же с ромбом нужен другой подход.
Теперь немного математики. Допустим есть уравнение прямой вида: Ах + Ву + С = 0. Если в его левую часть подставить координаты точка (х1, у1), то возможны три варианта исхода: 1) Ах1 + Ву1 + С > 0 - точка лежит выше прямой 2) Ах1 + Ву1 + С < 0 - точка лежит ниже прямой 3) Ах1 + Ву1 + С = 0 - точка лежит на прямой Теперь возвращаемся к ромбу. Представим ромб, как 4 прямых линии, с уравнениями: 1. y = 1 -x 2. y = x + 1 3. y = -x -1 4. y = x - 1 Для того чтобы точка находилась на площади ромба, она должна лежать ниже прямых (или на них) (1) (2) и выше прямых (3) (4), при чём одновременно. Запишем эти четыре уравнения в виде: Ax + By + C = 0 1. -x - y + 1 = 0 2. x - y + 1 = 0 3. x + y + 1 = 0 4. x - y - 1 = 0 Теперь составим наше условие: ((-x - y + 1) <= 0) && ((x - y + 1) <= 0) && ((x + y + 1) >= 0) && ((x - y -1) >= 0)
2
|
Aymurat
|
13.10.2016, 20:25
#5
|
Не по теме: ошибся в элементарном :)
0
|
Вездепух
11693 / 6372 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
||||||
13.10.2016, 22:03 | 7 | |||||
В заштрихованной фигуре, изображенной на рисунке, каждый школьник немедленно радостно узнает круг радиуса 1 в так называемой "манхэттенской" метрике L1. В метрике L1 расстояние между точками
(ax, ay) и (bx, by) определяется формулой D = |ax - bx| + |ay - by| Таким образом получаем формулу для решения задачи: точка (x, y) лежит в заштрихованной области, если L1-расстояние от точки до центра нашего L1-круга не превосходит его радиуса:
3
|
GbaLog-
|
13.10.2016, 22:09
#8
|
0
|
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
|
||||||
13.10.2016, 22:24 [ТС] | 9 | |||||
я правильно вас понял,ваш блок условия нужно занести именно так?
0
|
1 / 1 / 4
Регистрация: 01.10.2016
Сообщений: 247
|
||||||
13.10.2016, 22:44 [ТС] | 10 | |||||
Вот так,как вы указали блок условий,но выбивает постоянно "no"
0
|
Вездепух
11693 / 6372 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
|||||||||||
13.10.2016, 23:31 | 11 | ||||||||||
Нет. Это - не точное утверждение на тему "выше/ниже".
В уравнении прямой вида Ax + By + C = 0 коэффициенты A и B - это координаты вектора (A, B) нормали к прямой. Выражение Ax + By + C имеет положительное значение, если точка (x, y) лежит с той стороны от прямой, куда указывает вектор нормали (A, B) , и отрицательное значение, если точка лежит с другой стороны. А не "выше/ниже".Прекрасно. Уравнения составлены правильно, но ваше неверное утверждение о "выше/ниже" привело к тому, что условия у вас получились неправильные. То, что ваше условие неверно, сразу очевидно из того факта, что точка (0, 0) ему не удовлетворяет.Сформулируем правильные условия из ваших уравнений: 1. -x - y + 1 = 0 . Вектор нормали (-1, -1) направлен внутрь фигуры. Значит интересующее нас условие -x - y + 1 >= 0 , а не так как у вас.2. x - y + 1 = 0 . Вектор нормали (1, -1) направлен внутрь фигуры. Значит интересующее нас условие x - y + 1 >= 0 , а не так как у вас.3. x + y + 1 = 0 . Вектор нормали (1, 1) направлен внутрь фигуры. Значит интересующее нас условие x + y + 1 >= 0 . Здесь у вас правильно.4. x - y - 1 = 0 . Вектор нормали (1, -1) внезапно направлен наружу фигуры (!). Значит интересующее нас условие x - y - 1 <= 0 , а не так как у вас. Я бы для единообразия это уравнение переписал как -x + y + 1 = 0 (вектор нормали направлен внутрь) и получил условие -x + y + 1 >= 0 Таким образом правильное условие, построенное этим способом, будет выглядеть так
Опять же, несложно видеть, что данное условие эквивалентно ранее уже приводившемуся
2
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
14.10.2016, 00:39 | 12 |
Только я не понял, зачем вместо простейших выражений, приведенных в постах 6 и 7, вы используете такие громоздкие условия, которые к тому же, видимо, плохо понимаете
0
|
14.10.2016, 00:39 | |
14.10.2016, 00:39 | |
Помогаю со студенческими работами здесь
12
Составить программу, которая печатает true, если точка с координатами (х, у) принадлежит заштрихованной области Написать программу, которая определяет, принадлежит ли точка области Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |