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

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

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

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

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

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

C++ Из заданного на плоскости множества точек выбрать три различные точки
Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару C++
Из заданного множества точек на плоскости выбрать три разные точки A, B, C C++
Из задоного множества точек на плоскости выбрать две различные точки C++
C++ Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее удаленной от точки A
C++ Из заданного на плоскости множества точек выбрать три различные точки
Из заданного множества точек на плоскости выбрать две различные точки так C++
C++ Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек
Из множества точек выбрать две точки по определенному условию C++
C++ Из заданного множества точек на плоскости выбрать две различные точки
C++ Найти число точек и сумму расстояний от первой точки до остальных точек
Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D@rkD@iver
111 / 111 / 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
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++ два раза?
fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 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     Найти наименьшее расстояние от точки В до любой из точек множества А
Ответ Создать тему
Опции темы

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