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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Andrew_new
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 5
#1

Попадание точки в закрашенную область - C++

27.09.2012, 19:55. Просмотров 1185. Ответов 11
Метки нет (Все метки)

Помогите решить пожалуйста, очень надо. Файл с заданием прикреплен ниже.Заранее спасибо.

Для действительных х и у, определяющих координату точки A(x,y) в декартовых координатах, определить значение SPO.
Попадание точки в закрашенную область
Название: 1.JPG
Просмотров: 284

Размер: 12.0 Кб
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Попадание точки в закрашенную область (C++):

Задание на С++.Попадание точки в закрашенную область - C++
Помогите решить пожалуйста, очень надо. Файл с заданием прикреплен ниже.Заранее спасибо. Для действительных х и у, определяющих...

вычисление произведения двух чисел и попадание точки в закрашенную область - C++
1)Вычислить произведение двух чисел. Первое число - сумма третьей и четвертой цифр четырехзначного числа, второе - частное от деления...

Попадание точки в область - C++
В общем такой вопрос. У нас есть множество точек, которые являют собой замкнутую ломаную. Эта ломаная всегда замкнута, но мы не знаем,...

Определить попадание точки в область - C++
Вечер добрый, прошу о помощи в уже наверное всем надоевшей задаче для треугольника условие будет следующим y<-x+1, однако остается для...

Попадание точки в заштрихованную область - C++
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом....

Попадание точки в заданную область - C++
Помогите решить c++ Попадает ли точка в заданную плоскость

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
27.09.2012, 20:17 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
int main() {
    std::cout << "Enter x, y, R: ";
    double x = 0.0, y = 0.0, SPO = 0.0, R = 0.0;
    std::cin >> x >> y >> R;
    if (x*x + y*y >= R) {
        if ((x >= 0 && y > 0)||(x <= 0 && y < 0))
            SPO = x/y;
        if ((x >= 0 && y <= 0)||(x <= 0 && y >= 0))
            SPO = x + y;
    }
    else if (y != 0)
        SPO = x/y;
    std::cout << SPO << std::endl;
    return 0;
 
}
1
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
27.09.2012, 20:34 #3
Цитата Сообщение от yleart Посмотреть сообщение
C++
1
2
3
4
if ((x >= 0 && y > 0)||(x <= 0 && y < 0))
 SPO = x/y;
 if ((x >= 0 && y <= 0)||(x <= 0 && y >= 0))
 SPO = x + y;
если х==0 а у не равно 0 то выполнятся оба условия
1
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
27.09.2012, 20:39 #4
Условию задачи это не противоречит.. Будет высчитано x+y
1
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
27.09.2012, 20:51 #5
задачу я только сейчас увидел(сообщение редактировалось)
и тут же вопрос
а где у тебя
SPO = x*y; иначе
?
Цитата Сообщение от yleart Посмотреть сообщение
if (x*x + y*y >= R) {
да и здесь ты неправильно считаешь
если ты хочешь чтобы точка была внутри круга то правильное условие
if ((x*x + y*y )<= R*R)
2
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
28.09.2012, 04:54 #6
Так нормально?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<cmath>
double SPO (double x, double y, double R) {
  if ((x*x+y*y > R*R)&& fabs(x) <= R && fabs(y) <= R)
  {
    if ((x >= 0 && y > 0)||(x <= 0 && y < 0))
      return  x/y;
    if ((x >= 0 && y <= 0)||(x <= 0 && y >= 0))
      return x+y;
  }
  else if (y != 0)
    return x/y;
  return x*y;
}
int main() {
  std::cout << "Enter x, y, R:\n";
  double x = 0.0, y = 0.0, R = 0.0;
  std::cin >> x >> y >> R;
  std::cout << SPO(x, y, R) << std::endl;
}
1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
28.09.2012, 07:43 #7
yleart, а ты проверь хотябы работу ,при х=0.1 и y=0.1 ,R=1,
очевидно, что при заданных условиях ,должно выдать деление, но получится ,что сумма квадратов x y меньше радиуса , y не равен 0 ,и вернет произведение
1
yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
28.09.2012, 11:26 #8
12 строку глянь внимательнее
1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
28.09.2012, 19:51 #9
Цитата Сообщение от yleart Посмотреть сообщение
12 строку глянь внимательнее
да чот я затупил , извените
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.09.2012, 08:49 #10
Цитата Сообщение от yleart Посмотреть сообщение
Так нормально?
нет.
на самом деле это условие:
Цитата Сообщение от yleart Посмотреть сообщение
C++
1
if ((x*x+y*y > R*R)&& fabs(x) <= R && fabs(y) <= R)
попадания совсем в другой сектор. Рисуем квадрат у которого ребра параллельны (перпендикулярны) осям координат. В этот квадрат вписываем окружность. Так вот это условие попадания в квадрат, но не в круг.

Вот так будет правильнее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cmath>
double SPO (double x, double y, double R) {
  if (x*x+y*y > R*R)
      return x*y;
  if(x*x+y*y <= R*R && fabs(x)+fabs(y)>=R && ((x<=0 && y>=0)  || (x>=0 && y<=0))) 
      return x+y;
  if(y==0)
      return 0;
  return x/y;    
  }
int main() {
  std::cout << "Enter x, y, R:\n";
  double x = 0.0, y = 0.0, R = 0.0;
  std::cin >> x >> y >> R;
  std::cout << SPO(x, y, R) << std::endl;
}
2
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.09.2012, 10:03 #11
Через уравнения прямых:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double SPO (double x, double y, double R)
 {
   if (x*x + y*y <= R*R)
   {
      if(y > -x + R || y < -x - R) //красная область
         return x/y;
      else if (y > -x - R || y < x - R) // синяя область
                return x + y;
      else return x/y;    // желтая область
   }
   else return x*y;
}
1
RimoBlack
5 / 5 / 0
Регистрация: 20.10.2009
Сообщений: 111
24.04.2013, 20:29 #12
Цитата Сообщение от Thinker Посмотреть сообщение
Через уравнения прямых:
C++
1
2
3
4
5
6
7
8
9
10
11
12
double SPO (double x, double y, double R)
 {
   if (x*x + y*y <= R*R)
   {
      if(y > -x + R || y < -x - R) //красная область
         return x/y;
      else if (y > -x - R || y < x - R) // синяя область
                return x + y;
      else return x/y;    // желтая область
   }
   else return x*y;
}
При координатах 0;0 желтая ну никак не получается.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 20:29
Привет! Вот еще темы с ответами:

Попадание точки в заштрихованную область - C++
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом....

Попадание точки в определенную область. - C++
Определить принадлежит ли заданная точка с координатами (x,y) закрашенной области.

Попадание точки в заштрихованную область - C++
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, за крашенную на рисунке серым цветом....

Попадание точки в заданную область - C++
Дана точка на плоскости с координатами (x,y).Составить программу, которая выдает одно из сообщений &lt;&lt;Да&gt;&gt;,&lt;&lt;Нет&gt;&gt;,&lt;&lt;На границе&gt;&gt; в...


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

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

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