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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2012, 21:48   #1
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию Операторы ветвления.

С помощью логических условий определить: входит ли точка с заданными координатами в область.
Пример:


(((((x >= -r) && (x <= 0)) && ((y >= 0) && (y <= r) && (Math.Sqrt(Math.Pow((x + r), 2) + Math.Pow((y - r), 2)) >= r))) | (((x >= 0) && (x <= r)) && ((y >= -r) && (y <= 0)))) && (Math.Sqrt(Math.Pow((x + r), 2) + Math.Pow((y - r), 2)) >= r))
Задание:
Вообще не понимаю каким образом это делать
GoodNight вне форума Ответить с цитированием
Старый 14.10.2012, 00:08   #2
glebast
Форумчанин
 
Аватар для glebast
 
Регистрация: 10.12.2011
Сообщений: 154
По умолчанию

Ты часом не в ПГАЭКе учишься?
glebast вне форума Ответить с цитированием
Старый 14.10.2012, 08:48   #3
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от glebast Посмотреть сообщение
Ты часом не в ПГАЭКе учишься?
Нет) С чего ты взял что там?)
GoodNight вне форума Ответить с цитированием
Старый 14.10.2012, 12:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как-то так:
Код:
(Math.Abs(x)<=(Math.Sqrt(r)/2)) &&  (Math.Abs(y)<=(Math.Sqrt(r)/2)) && (
  (Math.Sqrt(Math.Pow((x + r), 2) + Math.Pow((y - r), 2)) < r)
)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2012, 17:17   #5
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как-то так:
Код:
(Math.Abs(x)<=(Math.Sqrt(r)/2)) &&  (Math.Abs(y)<=(Math.Sqrt(r)/2)) && (
  (Math.Sqrt(Math.Pow((x + r), 2) + Math.Pow((y - r), 2)) < r)
)
Спасибо! А как это вообще делать? Где об этом можно почитать?
GoodNight вне форума Ответить с цитированием
Старый 22.10.2012, 16:22   #6
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как-то так:
Код:
(Math.Abs(x)<=(Math.Sqrt(r)/2)) &&  (Math.Abs(y)<=(Math.Sqrt(r)/2)) && (
  (Math.Sqrt(Math.Pow((x + r), 2) + Math.Pow((y - r), 2)) < r)
)
Не правильный код, помогите кто-нибудь или дайте ссылку где можно почитать как это делать.
GoodNight вне форума Ответить с цитированием
Старый 22.10.2012, 17:06   #7
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

ну то, что стороны квадрата равны радиусу круга, я думаю, понятно.

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

Понятно, что если координаты точки Х и Y больше нуля или равны ему, и меньше стороны
квадрата (которая равна радиусу круга), то точка попадает в закрашенный верхний правый квадрат.
Код:
Т.е. если ((X<=R) and (Y=<R) and  (X>0) and (Y>0) ) or (....)
Теперь рассмотрим верхную часть закрашенной области "подкруга".
Уравнение окружности - X^2+Y^2=R^2, т.е. если делаем вывод, если X^2+Y^2>R^2,
то точка не попадает в окружность (что нам почти и нужно), но нам еще нужно ч.б. она попадала в область вблизи начала координат, т.о. если мы убедимся что точка не попадет в область кругу и при этом ее координаты Y<=R и |X|<=R, то точка попадает в во вторую область
Код:
Т.е. если ( (X^2+Y^2>R^2) and (Y<=R) and (abs (X)<=R))
и так далее для остальных областей....
И если точка попадает хотя бы в одну и областей, то всё ок)
Изображения
Тип файла: jpg Безымянный.jpg (17.2 Кб, 99 просмотров)
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 22.10.2012, 17:23   #8
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
ну то, что стороны квадрата равны радиусу круга, я думаю, понятно.

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

Понятно, что если координаты точки Х и Y больше нуля или равны ему, и меньше стороны
квадрата (которая равна радиусу круга), то точка попадает в закрашенный верхний правый квадрат.
Код:
Т.е. если ((X<=R) and (Y=<R) and  (X>0) and (Y>0) ) or (....)
Теперь рассмотрим верхную часть закрашенной области "подкруга".
Уравнение окружности - X^2+Y^2=R^2, т.е. если делаем вывод, если X^2+Y^2>R^2,
то точка не попадает в окружность (что нам почти и нужно), но нам еще нужно ч.б. она попадала в область вблизи начала координат, т.о. если мы убедимся что точка не попадет в область кругу и при этом ее координаты Y<=R и |X|<=R, то точка попадает в во вторую область
Код:
Т.е. если ( (X^2+Y^2>R^2) and (Y<=R) and (abs (X)<=R))
и так далее для остальных областей....
И если точка попадает хотя бы в одну и областей, то всё ок)
Благодарю! Буду разбираться.
GoodNight вне форума Ответить с цитированием
Старый 22.10.2012, 18:36   #9
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
ну то, что стороны квадрата равны радиусу круга, я думаю, понятно.

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

Понятно, что если координаты точки Х и Y больше нуля или равны ему, и меньше стороны
квадрата (которая равна радиусу круга), то точка попадает в закрашенный верхний правый квадрат.
Код:
Т.е. если ((X<=R) and (Y=<R) and  (X>0) and (Y>0) ) or (....)
Теперь рассмотрим верхную часть закрашенной области "подкруга".
Уравнение окружности - X^2+Y^2=R^2, т.е. если делаем вывод, если X^2+Y^2>R^2,
то точка не попадает в окружность (что нам почти и нужно), но нам еще нужно ч.б. она попадала в область вблизи начала координат, т.о. если мы убедимся что точка не попадет в область кругу и при этом ее координаты Y<=R и |X|<=R, то точка попадает в во вторую область
Код:
Т.е. если ( (X^2+Y^2>R^2) and (Y<=R) and (abs (X)<=R))
и так далее для остальных областей....
И если точка попадает хотя бы в одну и областей, то всё ок)
if (((x <= r) && (y <= r) && (x > 0) && (y > 0) && ((x * x + y * y > r * r) && (y <= r) && (Math.Abs (x) <= r))) && ((x <= -r) && (y <= -r) && (x < 0) && (y < 0) && ((x * x + y * y > r * r) && (y <= -r) && (Math.Abs (x) <= -r))))

Все равно что то не правильно, проверьте пожалуйста.
GoodNight вне форума Ответить с цитированием
Старый 22.10.2012, 19:03   #10
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

if (((x <= r) && (y <= r) && (x > 0) && (y > 0) && ((x * x + y * y > r * r) && (y <= r) && (Math.Abs (x) <= r))) | (((x <= r) && (y <= r) && (x < 0) && (y < 0) && ((x * x + y * y > r * r) && (y >=r) && (Math.Abs (x) >= r)))))

Вот вроде, так?!
GoodNight вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операторы ветвления Homakk Помощь студентам 1 10.10.2012 11:52
Написать программу, используя операторы циклов и ветвления Neonik Помощь студентам 0 30.11.2011 17:29
операторы выбора и организации ветвления в программах на VBSRIPT alex Fal Помощь студентам 0 23.03.2010 22:37
С++,циклы и операторы ветвления -ushёl- Помощь студентам 1 12.12.2009 22:25