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

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

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

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

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

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

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

Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A - C++
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <time.h> #define B 100 using namespace std; void gen...

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

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

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

Из заданного на плоскости множества точек выбрать три различные точки - C++
Здравствуйте, помогите пожалуйста написать программу: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы...

5
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
28.09.2010, 08:29 #2
и ты хочешь чтоб тебе за спасибо всю задачку решили с нуля?
ты бы хоть попытался сам сдлелать
0
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 является наименьшим?
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
111 / 111 / 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++ два раза?
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 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
Привет! Вот еще темы с ответами:

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

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

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

Из заданного множества точек на плоскости выбрать три разные точки A, B, C - C++
Из заданного множества точек на плоскости выбрать три разные точки A, B, C, так, чтобы внутри треугольника ABC содержалось максимальное...


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

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

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