Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
#1

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

28.09.2010, 01:20. Просмотров 2048. Ответов 5
Метки нет (Все метки)

дано множество точек с координатами(х,у) и точка В с координатами(х,у), лежащая в другом множестве.
Найти наименьшее расстояние от точки В до любой из точек множества А(вывести наименьшее растояние от точки А до точки В)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 01:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти наименьшее расстояние от точки В до любой из точек множества А (C++):

Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри
"Даны N точек на плоскости. Найти среди них точки являющиеся вершинами фигуры,...

Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <time.h>...

Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару
Даны действительные числа x1,....x15, y1,....y15, которые рассматриваются как...

Найти расстояние от начала координат до каждой точки и расстояние между точками
задача на С++ На плоскости заданы точки своими координатами. Найти расстояние...

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

Из множества точек выбрать две точки по определенному условию
Из заданного множества точек на плоскости выбрать две различные точки так,...

5
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
28.09.2010, 08:29 #2
и ты хочешь чтоб тебе за спасибо всю задачку решили с нуля?
ты бы хоть попытался сам сдлелать
0
chesser
17 / 17 / 7
Регистрация: 02.08.2010
Сообщений: 44
28.09.2010, 11:26 #3
Наименьшее расстояние между двумя точками (x1,y1) и (x2,y2) - это sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)).
Или тебе надо найти точку из множества, расстояние до которой от точки B является наименьшим?
0
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++ не надо, все получилось)
0
D@rkD@iver
112 / 112 / 13
Регистрация: 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++ два раза?
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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);
}
0
30.09.2010, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2010, 17:37
Привет! Вот еще темы с решениями:

Из заданного множества точек на плоскости выбрать две различные точки
Из заданного множества точек на плоскости выбрать две различные точки так, что...

Из заданного на плоскости множества точек выбрать три различные точки
Само задание звучит так: &quot;Из заданного на плоскости множества точек выбрать три...

Выбрать три различные точки из заданного множества точек на плоскости
Выбрать три различные точки из заданного множества точек на плоскости так,...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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