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

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

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

Разработать программу для нахождения пары самых удаленных друг от друга точек - C++

28.02.2011, 19:40. Просмотров 1432. Ответов 3
Метки нет (Все метки)

N точек на плоскости заданы своими координатами, значения которых формируются случайным образом. Разработать программу для нахождения пары самых удаленных друг от друга точек.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 19:40     Разработать программу для нахождения пары самых удаленных друг от друга точек
Посмотрите здесь:

В заданном множестве точек найти три пары самых удаленных друг от друга точек - C++
Координаты точки на площади задаются парой действительных чисел. Дано натуральное число n и координаты n точек. Найти три пары самых...

Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек. - C++
Условие задачи: В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в...

Найти номера наиболее и наименее удаленных друг от друга точек - C++
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1,...

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

Найти две наиболее удаленных друг от друга точки - C++
Структуры: I. Решить задачу, используя структуру point для хранения координат точки: Множество точек задано в пространстве. Найти две...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.02.2011, 20:12     Разработать программу для нахождения пары самых удаленных друг от друга точек #2
Полный перебор. Считаете расстояние между всеми точками и ищите максимальное из них.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
28.02.2011, 20:42     Разработать программу для нахождения пары самых удаленных друг от друга точек #3
Эн квадрат.
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
#include <cstdio>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <vector>
 
struct Point {
  int x, y;
  Point(int x_, int y_) : x(x_), y(y_) {}
};
 
inline float Distance(const Point &a, const Point &b) {
  return sqrt(pow(a.x - b.x, 2.) + pow(a.y - b.y, 2.));
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  int number_of_points = 15 + rand() % 6;
  std::vector<Point> points;
  for (int i = 0; i < number_of_points; ++i) {
    Point new_point(rand() % 100, rand() % 100);
    printf("(%d, %d) ", new_point.x, new_point.y);
    points.push_back(Point(new_point));
  }
  printf("\n");
 
  Point max_a = points[0], max_b = points[1];
  float max_distance;
  for (int i = 0; i < number_of_points - 1; ++i)
    for (int j = i; j < number_of_points; ++j) {
      float distance = Distance(points[i], points[j]);
      if (distance > max_distance) {
        max_a = points[i];
        max_b = points[j];
        max_distance = distance;
      }
    }
 
  printf("Max distance (%d, %d) - (%d, %d) = %f\n", max_a.x, max_a.y,
         max_b.x, max_b.y, max_distance);
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2011, 20:46     Разработать программу для нахождения пары самых удаленных друг от друга точек
Еще ссылки по теме:

Нарисовать заданное количество точек окружности, равноудалённых друг от друга - C++
Ребят, помогите! Делаю исследовательскую работу по математике и встал в ступор при первой же проблеме! Юзаю GLUT. Нужно нарисовать n точек...

Выяснить какие из четырех точек находятся на максимальном расстоянии друг от друга - C++
Четыре точки заданы своими координатами X(x1, x2), Y(y1, y2), Z(z1, z2), P(p1, p2). Выяснить, какие из них находятся на максимальном...

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

Динамическая матрица (Найти координаты двух точек, наиболее удалённых друг от друга) - C++
Дана динамическая матрица размера N*2 (N вводится). Каждая строка матрицы содержит значения координат X и Y одной точки на плоскости,...

Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин. - C++
Число вершин, удаленных от пары вершин по кротчайшим маршрутам каждой из следующих длин: 1, 2, 3 и т.д., для каждой пары вершин. ...

Разработать программу для нахождения k–ой по порядку цифры последовательности - C++
Разработать программу для нахождения k–ой по порядку цифры последовательности 1234567891011121314… , в которой выписаны подряд все...


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

Или воспользуйтесь поиском по форуму:
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
28.02.2011, 20:46     Разработать программу для нахождения пары самых удаленных друг от друга точек #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
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<math.h>
 
int main(){
    int n, i, j, maxi1, maxi2;
    double maxDist=-1, tmpDist;
    fputs("n= ", stdout);
    scanf("%d", &n);
    int* xs=(int*)malloc(n*sizeof(int));
    int* ys=(int*)malloc(n*sizeof(int));
    srand(time(NULL));
    for(i=0; i<n; i++){
        xs[i]=rand()%10-5;
        ys[i]=rand()%10-5;
        printf("x= %d, y= %d\n", xs[i], ys[i]);
    }
    for(i=0; i<n; i++){
        for(j=i+1; j<n; j++){
            tmpDist=sqrt(pow(xs[i]-xs[j], 2)+pow(ys[i]-ys[j], 2));
            /*printf("tmpDist= %f\n", tmpDist);*/
            if(tmpDist>maxDist){
                maxDist=tmpDist;
                maxi1=i;
                maxi2=j;
            }
        }
    }
    printf("(%d, %d), (%d, %d), dist=%f", xs[maxi1], ys[maxi1], xs[maxi2], ys[maxi2], maxDist);
    free(xs);
    free(ys);
    return 0;
}
Yandex
Объявления
28.02.2011, 20:46     Разработать программу для нахождения пары самых удаленных друг от друга точек
Ответ Создать тему
Опции темы

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