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

Программа нахождении минимально удалённой точки от других точек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нужно отсортировать массив http://www.cyberforum.ru/cpp-beginners/thread421756.html
1. Оценки студентов. Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету (в первой строке – информация об оценках первого студента, во...
C++ Подсчитать самую длинную последовательность подряд идущих букв а Дана строка.Подсчитать самую длинную последовательность подряд идущих букв а. http://www.cyberforum.ru/cpp-beginners/thread421747.html
C++ Поиск максимального значения массива
Люди помогите с двумя задачками: 1. В матрице размером 4 на 5 найти сумму наибольших элементов столбцов. 2. Вычислить значение max (x(0)+x(n-1),x(1)+x(n-2),x(2)+x(n-3),....,x((n-1)/2)+x(n/2), где...
указатели,символьные строки и функции C++
Разработать функцию, которая выполняет ту обработку фрагмента текста, которая определена в Вашем индивидуальном задании. При реализации функции запрещается пользоваться функциями библиотек языка C. ...
C++ Управление строками http://www.cyberforum.ru/cpp-beginners/thread421706.html
Есть ли функции в библиотеке Си (не Си++) позволяющие перезаписывать содержимое строк или менять положение индикатора позиции наподобии того как это можно делать с потоками? Пока кажеться, что в...
C++ Функция fscanf Читаю из файла (в файле записаны пояснения к работе программы) код: #include <iostream> using namespace std; void fFunc(float a, float b, float c); void ffFunc(float a, float b, float c); подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
03.01.2012, 22:57
Чет я многабукаф использовал.
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
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <iostream>
 
class Point {
 public:
  Point() : x_(0.), y_(0.) {}
  Point(float x, float y) : x_(x), y_(y) {}
  float getX() const { return x_; }
  float getY() const { return y_; }
  float getDistanceTo(const Point &point) const {
    return sqrt(pow(point.getX() - getX(), 2.) +
      pow(point.getY() - getY(), 2.));
  }
  static Point randomPoint() {
    return Point((rand() % 1000) / 100., (rand() % 1000) / 100.);
  }
 private:
  float x_, y_;
};
 
std::ostream &operator<<(std::ostream &stream, const Point &point) {
  return stream << "[" << point.getX() << ":" << point.getY() << "]";
}
 
float sumOfDistances(size_t id, const Point *points, size_t size) {
  float sum = 0.;
  for (size_t i = 0; i < size; ++i)
    if (i != id)
      sum += points[id].getDistanceTo(points[i]);
  return sum;
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
  size_t numberOfPoints = 10;
  Point *points = new Point[numberOfPoints]();
 
  std::cout << "Points: ";
  for (size_t i = 1; i < numberOfPoints; ++i)
    std::cout << (points[i] = Point::randomPoint()) << " ";
  std::cout << std::endl;
 
  size_t minPointId = 0;
  float minPointDistanceSum = sumOfDistances(minPointId, points, numberOfPoints);
  for (size_t i = 1; i < numberOfPoints; ++i) {
    float currentPointDistanceSum = sumOfDistances(i, points, numberOfPoints);
    if (currentPointDistanceSum < minPointDistanceSum) {
      minPointDistanceSum = currentPointDistanceSum;
      minPointId = i;
    }
  }
 
  std::cout << "Closest point: " << points[minPointId] << std::endl <<
    "Sum of distances: " << minPointDistanceSum << std::endl;
  
  delete [] points;
  return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru