Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Andrew_new
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 5
1

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

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

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

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

Название: 1.JPG
Просмотров: 288

Размер: 12.0 Кб

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 19:55
Ответы с готовыми решениями:

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

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

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

Попадание точки в заданную область
Дана точка на плоскости с координатами (x,y).Составить программу, которая...

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

11
yleart
60 / 45 / 12
Регистрация: 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
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,937
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 / 12
Регистрация: 07.10.2011
Сообщений: 139
27.09.2012, 20:39 4
Условию задачи это не противоречит.. Будет высчитано x+y
1
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,937
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 / 12
Регистрация: 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 / 34
Регистрация: 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 / 12
Регистрация: 07.10.2011
Сообщений: 139
28.09.2012, 11:26 8
12 строку глянь внимательнее
1
Nixy
ComfyMobile
400 / 281 / 34
Регистрация: 24.07.2012
Сообщений: 916
28.09.2012, 19:51 9
Цитата Сообщение от yleart Посмотреть сообщение
12 строку глянь внимательнее
да чот я затупил , извените
0
valeriikozlov
Эксперт С++
4687 / 2513 / 751
Регистрация: 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
Эксперт С++
4234 / 2208 / 203
Регистрация: 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
6 / 6 / 1
Регистрация: 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
24.04.2013, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 20:29

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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