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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
#1

Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае - C++

10.11.2012, 22:14. Просмотров 2290. Ответов 4
Метки нет (Все метки)

Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае:
я почти научился писать составлять подобные примеры... но есть один ньюанс я незнаю что делать с кругом...кажется у него своя формула)надеюсь на вашу помошь
0
Миниатюры
Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае (C++):

Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае - C++
помогите

Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае - C++
Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае

Составить программу, которая печатает true, если точка с координатами (x,y) принадлежит закрашенной области, и false в противном случае - C++
Составить программу, которая печатает true, если точка с координатами (x,y) принадлежит закрашенной области, и false в противном случае:

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

Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) принадлежит закрашенной области, и false — в - C++
Помогите решить рис. 39

Вывести на консоль true, если точка принадлежит заданным областям, и false - в противном случае - C++
Составить программу которая печатает true если точка с координатами (x,y) принадлежит заданным закрашенным (заштрихованным) областям и...

4
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
10.11.2012, 22:26 #2
Формула окружности:
(x-x0)^2 + (y-y0)^2 = R^2, где x0, y0 - координаты центра окружности и R - радиус окружности

То есть тебе необходимо поставить координаты точки (x, y) в неравенство:
(x-x0)^2 + (y-y0)^2 < R^2
Если неравенство верно, точка находится внутри окружности
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
11.11.2012, 12:11  [ТС] #3
формула вроде бы правильная... но программа не запускается мол ошибка... выделяется вся формула..
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.11.2012, 13:15 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
class Stringable {
 public:
  virtual std::string toString() const {}
};
 
std::ostream &operator<<(std::ostream &stream, const Stringable &object) {
  return stream << object.toString();
}
 
std::ostream &operator<<(std::ostream &stream, const Stringable *object) {
  return stream << object->toString();
}
 
class Point : public Stringable {
 private:
  double x, y;
 public:
  Point() : x(0.0), y(0.0) {}
  Point(double x, double y) : x(x), y(y) {}
  const double &getX() const { return x; }
  const double &getY() const { return y; }
  double getDistanceTo(const Point &other) {
    return pow(pow(getX() - other.getX(), 2.0) +
      pow(getY() - other.getY(), 2.0), 0.5);
  }
  static Point *generateRandomPoint() {
    return new Point((rand() % 2000 - 1000) / 100., (rand() % 2000 - 1000) / 100.);
  }
  virtual std::string toString() const {
    std::stringstream ss;
    ss << "[" << getX() << ", " << getY() << "]";
    return ss.str();
  }
};
 
class Figure : public Stringable {
 public:
  virtual bool isPointInside(const Point &point) {}
};
 
class Circle : public Figure {
 private:
  Point center;
  double radius;
 public:
  Circle(const Point &center, const double &radius) 
    : center(center), radius(radius) {}
  const Point &getCenter() const { return center; }
  const double &getRadius() const { return radius; }
  virtual bool isPointInside(const Point &point) {
    return center.getDistanceTo(point) < radius;
  }
  virtual std::string toString() const {
    std::stringstream ss;
    ss << "[Circle [" << getCenter() << ", " << getRadius() << "]]";
    return ss.str();
  }
};
 
class Triangle : public Figure {
 private:
  Point a, b, c;
 public:
  Triangle(const Point &a, const Point &b, const Point &c) : a(a), b(b), c(c) {}
  const Point &getA() const { return a; }
  const Point &getB() const { return b; }
  const Point &getC() const { return c; }
  double getArea() const {
    return fabs((a.getX() - c.getX())*(b.getY() - c.getY()) + (b.getX()-c.getX())*(c.getY()-a.getY()));
  }
  virtual bool isPointInside(const Point &point) {
    return fabs(getArea() - Triangle(a, b, point).getArea() -
      Triangle(a, point, c).getArea() - Triangle(point, b, c).getArea())
      < 0.000000001;
  }  
  virtual std::string toString() const {
    std::stringstream ss;
    ss << "[Triangle [" << getA() << ", " <<
      getB() << ", " << getC() << "]]";
    return ss.str();
  }
};
 
std::ostream &operator<<(std::ostream &stream, const std::vector<Figure*> &stringables) {
  std::copy(stringables.begin(), stringables.end(), 
    std::ostream_iterator<Figure*>(stream, "; "));
  return stream;
}
 
std::ostream &operator<<(std::ostream &stream, const std::vector<Point*> &stringables) {
  std::copy(stringables.begin(), stringables.end(), 
    std::ostream_iterator<Point*>(stream, "; "));
  return stream;
}
 
Figure *isPointInFigures(const Point &point, std::vector<Figure*> figures) {
  for (std::vector<Figure*>::iterator figure = figures.begin();
    figure != figures.end(); ++figure)
    if ((*figure)->isPointInside(point))
      return *figure;
    return NULL;
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
 
  std::vector<Figure*> figures;
  figures.push_back(new Circle(Point(-4., 4), 3.));
  figures.push_back(new Triangle(Point(0, 0), Point(6., 0.), Point(0., 6.)));
 
  std::vector<Point*> points;
  for (int i = 0; i < 10; ++i) points.push_back(Point::generateRandomPoint());
 
  std::cout << "Points: " << points << std::endl;
  std::cout << "Figures: " << figures << std::endl;
 
  for (std::vector<Point*>::iterator point = points.begin();
    point != points.end(); ++point) {
    if (Figure *figure = isPointInFigures(**point, figures))
      std::cout << **point << " is in figure " << *figure << std::endl;
  }
 
  for (std::vector<Figure*>::iterator i = figures.begin();
    i != figures.end(); ++i)
    delete *i;
  for (std::vector<Point*>::iterator i = points.begin(); i != points.end(); ++i)
    delete *i;
 
  std::cin >> argc;
  return 0;
}
0
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
11.11.2012, 13:55 #5
Напишем функцию:
C++
1
2
3
4
5
6
7
8
bool isPointIntheCircle(double x, double y)
{
    if (pow(x - 4, 2) + pow(y - 4, 2) < 3 * 3)
    {
        return true;
    }
    return false;
}
Только функция напасина для конкретно заданного круга.
1
11.11.2012, 13:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 13:55
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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