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

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

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

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

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

Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае:
я почти научился писать составлять подобные примеры... но есть один ньюанс я незнаю что делать с кругом...кажется у него своя формула)надеюсь на вашу помошь
Миниатюры
Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 22:14     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае
Посмотрите здесь:
Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае C++
Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае C++
C++ Составить программу, которая печатает true, если точка с координатами (x,y) принадлежит закрашенной области, и false в противном случае
C++ Составить программу, которая печатает true, если точка с координатами (x,y) принадлежит закрашенной области, и false в противном случае:
Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) принадлежит закрашенной области, и false — в C++
C++ Вывести на консоль true, если точка принадлежит заданным областям, и false - в противном случае
C++ Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) прин
C++ Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) прин
C++ Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) прин
Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) прин C++
Разработать программу, которая вводит данные и выводит тест True если условие истинно, в противном случае False C++
C++ Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае.

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
10.11.2012, 22:26     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае #2
Формула окружности:
(x-x0)^2 + (y-y0)^2 = R^2, где x0, y0 - координаты центра окружности и R - радиус окружности

То есть тебе необходимо поставить координаты точки (x, y) в неравенство:
(x-x0)^2 + (y-y0)^2 < R^2
Если неравенство верно, точка находится внутри окружности
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
11.11.2012, 12:11  [ТС]     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае #3
формула вроде бы правильная... но программа не запускается мол ошибка... выделяется вся формула..
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
11.11.2012, 13:15     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае #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;
}
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
11.11.2012, 13:55     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае #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;
}
Только функция напасина для конкретно заданного круга.
Yandex
Объявления
11.11.2012, 13:55     Составить программу, которая печатает true, если точка с координатами (х,у) принадлежит заштрихованной области, и false в противном случае
Ответ Создать тему
Опции темы

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