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

Матрица расстояний между N точками (работа с файлами) - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Фантазерка
 Аватар для Фантазерка
9 / 9 / 2
Регистрация: 04.04.2009
Сообщений: 25
26.05.2009, 15:22     Матрица расстояний между N точками (работа с файлами) #1
Условие задачки:
На плоскости заданы n точек своими координатами (хранится в текстовом файле). Составить функцию для построения матрицы расстояний между всеми точками. Составить функцию для нахождения равноудаленных точек, если такие есть, с определением их номеров. Вывести на экран исходные координаты, матрицу расстояний и номера равноудаленных точек. Матрицу также дописать в исходный файл.


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

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
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main (void)
{
 
int nrow;
int i,j;
 
printf ("Enter kol-vo tochek\n");
scanf ("%d", &nrow);
 
 
float **arr=new float*[2]; //Описание исходного массива
for(i=0;i<nrow;i++)
     arr[i]=new float[nrow];
 
float **matrix=new float*[nrow]; //Описание итоговой матрицы расстояний
for(i=0;i<nrow;i++)
     matrix[i]=new float[nrow];
 
for (i = 0; i < nrow; i++)
 for (j=0; j < 2;j++)
    arr[i][j] = 0+rand()%20-5;           //для удобства сформировать случ образом
 
cout << "Vivod massive!" << endl;
 
for (i = 0; i < nrow; i++)
{
     for (int j=0; j<2;j++)
     {
        printf("%2.2f ",arr[i][j]);
     }
    printf("\n");
}
cout << endl;
 
//Формирование матрицы расстояний
 
 
for (i = 0; i < nrow; i++)  
{
for (j = 0;  j< nrow; j++)  
{
        matrix [i][j]= sqrt((arr[i][0]-arr[j][0])*(arr[i][0]-arr[j][0])+(arr[i][1]-arr[j][1])*(arr[i][1]-arr[j][1]));  //расстояние между двумя точками
}
}
 
    for (i = 0; i < nrow; i++)  
     {for (j=0; j < nrow;j++)
     {
           printf("%1.2f ",matrix[i][j]);
     }
     printf("\n");
     }
}
Миниатюры
Матрица расстояний между N точками (работа с файлами)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2009, 15:22     Матрица расстояний между N точками (работа с файлами)
Посмотрите здесь:

Поиск самых коротких расстояний между любыми двумя вершинами графа по методу Шимбела C++
C++ МАТРИЦА РАССТОЯНИЙ ГРАФА
C++ АТД Графы. Поиск суммы расстояний между городами.
Нахождение расстояния между точками C++
Расстояние между 2-мя точками. C++
C++ Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела
Расстояние между точками C++
C++ Найти максимальное и минимальное значение между точками и вывести их вместе с точками
C++ Построить матрицу расстояний между всеми точками. Найти равноудаленные точки, если такие есть, и напечатать их номера
Расстояние между точками x0 y0 x1 y1 C++
Вывести таблицу расстояний между городами C++
Матрица расстояний для невзвешенного графа C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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