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

Найти наименьшее расстояние от точки В до любой из точек множества А - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
28.09.2010, 01:20     Найти наименьшее расстояние от точки В до любой из точек множества А #1
дано множество точек с координатами(х,у) и точка В с координатами(х,у), лежащая в другом множестве.
Найти наименьшее расстояние от точки В до любой из точек множества А(вывести наименьшее растояние от точки А до точки В)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 01:20     Найти наименьшее расстояние от точки В до любой из точек множества А
Посмотрите здесь:

C++ Из заданного на плоскости множества точек выбрать три различные точки
Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару C++
C++ Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров с центрами в этих точках, содержащих ровно n точек этого множества
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
C++ не получается задачка (Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D@rkD@iver
110 / 110 / 3
Регистрация: 01.10.2008
Сообщений: 876
28.09.2010, 08:29     Найти наименьшее расстояние от точки В до любой из точек множества А #2
и ты хочешь чтоб тебе за спасибо всю задачку решили с нуля?
ты бы хоть попытался сам сдлелать
chesser
17 / 17 / 1
Регистрация: 02.08.2010
Сообщений: 44
28.09.2010, 11:26     Найти наименьшее расстояние от точки В до любой из точек множества А #3
Наименьшее расстояние между двумя точками (x1,y1) и (x2,y2) - это sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)).
Или тебе надо найти точку из множества, расстояние до которой от точки B является наименьшим?
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
28.09.2010, 23:29  [ТС]     Найти наименьшее расстояние от точки В до любой из точек множества А #4
chesser, да именно... начала писать... массивы и точку все выводит а вот функция дурная расстояние не высчитывает, где ошибка?

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
// ss.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <math.h>
using namespace std;
    int*a;
    int*b;
    int x;
    int y;
    double z;
void rast(double z,int n)
{ int i;
 
    for( i=0;i<n; i++)
    {
         z = (double) sqrt (double (x-a[i])*(x-a[i])+(y-b[i])*(y-b[i]));
         i++;
        
    }
    
     cout<<"Vse vozmognie rasstojania"<<z<<endl;
}
 
int _tmain(int argc, _TCHAR* argv[])
{ SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
 
     int n;
    cout<<"Введите размерность массива:";
    cin>>n;
     a=new int[n];
     b=new int [n];
      for (int i=0;i<n;i++)
 
      {
                  cout<<"a["<<i<<"]=";
                  cin>>a[i];}
                        for (int i=0;i<n;i++){
                  cout<<"b["<<i<<"]=";
                  cin>>b[i];
 
                        }
cout<<"x=";
        cin>>x;
        cout<<"y=";
            cin>>y;
    
        cout<<"Tochka B"<<"("<<x<<","<<y<<")"<<endl;
        rast(z,n);
    return 0;
}
Добавлено через 23 минуты
как из чисел , которые вывелись на экран(все возможные расстояния) создать массив , чтоб их можно было сравнить и вывести минимальное расстояние???
в программе выше i++ не надо, все получилось)

Добавлено через 6 минут
как из чисел , которые вывелись на экран(все возможные расстояния) создать массив , чтоб их можно было сравнить и вывести минимальное расстояние???
в программе выше i++ не надо, все получилось)
D@rkD@iver
110 / 110 / 3
Регистрация: 01.10.2008
Сообщений: 876
29.09.2010, 16:53     Найти наименьшее расстояние от точки В до любой из точек множества А #5
непонятно зачем ты z передаешь как параметр, если не используешь
сделай массив double и потом сохраня

Добавлено через 1 минуту
й туда новые значения
C++
1
2
3
4
5
int len= 0;
double mas[100];
...
 mas[len] = (double) sqrt (double (x-a[i])*(x-a[i])+(y-b[i])*(y-b[i]));
len++;
и зачем ты в цикле писала i++ два раза?
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.09.2010, 17:37     Найти наименьшее расстояние от точки В до любой из точек множества А #6
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
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
 
typedef struct {
    double x, y;
} point_t;
 
double distance(point_t *a, point_t *b) {
    return sqrt(((a->x - b->x) * (a->x - b->x)) + ((a->y - b->y) * (a->y - b->y)));
}
 
#define NPOINTS 3
 
int main()
{
    point_t points[NPOINTS] = { {10,0}, {3,3}, {4,4} };
    point_t point_b = { 1,1 };
    
    double min_distance = 0;
    double buf = 0;
    int i = 0;
    
    printf("POINT B: [%f, %f]\n", point_b.x, point_b.y);
    for(i = 0; i < NPOINTS; ++i)
        printf("POINT %d: [%f, %f]\n", i + 1, points[i].x, points[i].y);
    
    min_distance = distance(&points[0], &point_b);
    for(i = 1; i < NPOINTS; ++i) {
        if(min_distance > (buf = distance(&points[i], &point_b))) {
            min_distance = buf;
        }
    }
        
    printf("min distance: %f\n", min_distance);
}
Yandex
Объявления
30.09.2010, 17:37     Найти наименьшее расстояние от точки В до любой из точек множества А
Ответ Создать тему
Опции темы

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