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

Найти максимальное и минимальное значение между точками и вывести их вместе с точками - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:21     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #1
Я уже весь гугл перерыл и всю голову выпотрошил.не получается. Нужно написать функцию для двух массивов х[6] и у[6]. Эти массивы задают координаты точек.Надо найти максимальное и минимальное значение между точками и вывести их вместе с точками. Т.е. в таком примерно виде (Максимальное расстояние между точками А2 и А5 = 12).Фишка в том, что не между соседними точками, а между всеми. Вобщем не получается, помогите кто чем сможет)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 21:21     Найти максимальное и минимальное значение между точками и вывести их вместе с точками
Посмотрите здесь:

C++ Найти наибольшее расстояние между точками
Найти периметр и площадь треугольника, используя формулу для расстояния между двумя точками на плоскости C++
C++ Найти наибольшее расстояние между точками
C++ Построить матрицу расстояний между всеми точками. Найти равноудаленные точки, если такие есть, и напечатать их номера
Найти вероятность существования пути в графе между заданными точками C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:12  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #21
Запустилось, работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:13     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #22
DaDid, ошибок в вычислениях нет?
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:15  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #23
Ошибок нет
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:16     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #24
DaDid, то есть задача решена?)
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:18  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #25
Как раз таки нет))Задача заключалась в написании функции, а не в вычислении расстояния.Вычисление расстояния-это задача функции.Суть функции в том, что она универсальна, в моем коде это кое как видно
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:24     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #26
DaDid, хах) нашли из за чего огорчаться
C++
1
2
3
4
double f(int x1, int y1, int x2, int y2)
{
    return sqrt(pow(x2-x1,2)+pow(y2-y1,2));
}
получает координаты 2 точек, возвращает длину
Вызываете ее из main, получаете результат
Встраивайте ее в свою программу, отписывайтесь, если появятся вопросы. Или надо было вообще всю проверку в функцию впихнуть?
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:29  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #27
Ладно, в любом случае большое спасибо)
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:41     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #28
DaDid, успехов)
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:02  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #29
Вобщем написал все по своему, определяю минимум и максимум, но осталось еще определить номера этих точек.Вот промежуточный вариант)
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
float maxrasst(float x[],float y[],int n);
float minrasst(float x[],float y[],int n);
 
int main()
{
 float x[6],y[6],i,j;
 
 
printf("vvedite koordinati x");
for(int i=0; i<6; i++)
    scanf_s("%f", &x[i]);
printf("vvedite koordinati y");
for(int i=0; i<6; i++)
    scanf_s("%f", &y[i]);
for(int i=0; i<6; i++)
    {printf("x%d = %f  ",i+1,x[i]);
printf("y%d = %f\n",i+1,y[i]);}
float smax=maxrasst(x,y,6);
float smin=minrasst(x,y,6);
i=num(x,y,6);j=nam(x,y,6);
 
printf("Max rasstoyanie mezdu tochkami %d  i  %d =%4.1f\n",smax);
printf("Min rasstoyanie mezdu tochkami =%4.1f\n",smin);
   getch();
    return 1;
    }
    
float maxrasst(float x[],float y[],int n)
    {
float max=-100000;
float s,imax,jmax;
for (int i = 0; i < n-1; i++)
     {   for (int j = i+1; j <n; j++)
    { s=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
 
printf("rasst mezdu %d  i  %d = %f\n",i+1,j+1,s);
    if (s>max) max=s;imax=i,jmax=j;}}
return max,imax,jmax;
}
 
 
float minrasst(float x[],float y[],int n)
    {
        float min=100000;
float s,imin,jmin;
 
for (int i = 0; i < n-1; i++)
     {   for (int j = i+1; j <n; j++)
    { s=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
if (s<min) min=s;imin=i;jmin=j;}}
return min;
}
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 01:14     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #30
DaDid, ну если все работает, то норм. А начальное значение max и min стоит делать равным первому элементу. Так надежнее
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:19  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #31
Работать то работает, но я опять в ступоре. Не могу определить номера точек и вывести их
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 01:27     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #32
DaDid, я конечно немного запутался в вашем коде, но вы можете объявить 2 переменные в main и просто передавать ссылки на них в функции, где определяются эти сами переменные. Что бы передать адрес на статическую переменную, используйте &. Например:
C++
1
2
int a;
func(&a);
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:39  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #33
мало что понял, я уже по всякому пробовал, но не определяются точки
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 10:20     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #34
DaDid, кидайте код, поглядим. В следующий раз, прежде чем кому либо ответить, кликайте на его ник и он появится в тэгах в тексте ответа. Так удобнее, потому что в таком случае этот человек получит извещение об ответе в теме

Добавлено через 33 минуты
DaDid, мне, откровенно говоря, ваша схема постройки программы совсем не нравится. Я вот так решил по своему
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
58
59
60
#include <iostream>
#include <math.h>
 
using namespace std;
 
struct m {
    int one;
    int two;
    double res;
};
 
double f(double x1, double y1, double x2, double y2)
{
    return sqrt(pow(x2-x1,2)+pow(y2-y1,2));
}
 
int main(int argc, char *argv[])
{
    double x[6],y[6];
    for (int i = 0; i < 6; i++)
    {
        cout << "point " << i+1 << endl << "x:" << endl;
        cin >> x[i];
        cout << "y" << endl;
        cin >> y[i];
    }
    cout << "Points:" << endl;
    for (int i = 0; i < 6; i++)
        cout << "A[" << i << "] (" << x[i] << ", " << y[i] << ")" <<endl;
    m min, max;
    min.one = 0;
    min.two = 1;
    min.res = f(x[0],y[0],x[1],y[1]);
    max.one = 0;
    max.two = 1;
    max.res = f(x[0],y[0],x[1],y[1]);
    cout << "Lines:" << endl;
    for (int i = 0; i < 5; i++)
            for (int j = i+1; j <=5; j++)
            {
                double temp = f(x[i],y[i],x[j],y[j]);
                cout << "Line A(" << x[i] << ", " << y[i] << ") [" << i << "] - A(" << x[j] << ", " << y[j] << ") [" << j <<"] = " << temp << endl;
                if (temp > max.res)
                {
                    max.one = i;
                    max.two = j;
                    max.res = temp;
                }
                if (temp < min.res)
                {
                    min.one = i;
                    min.two = j;
                    min.res = temp;
                }
            }
    cout << "Results:" << endl;
    cout << "MAX: Line A(" << x[max.one] << ", " << y[max.one] << ") [" << max.one << "] - A(" << x[max.two] << ", " << y[max.two] << ") [" << max.two <<"] = " << max.res << endl;
    cout << "MAX: Line A(" << x[min.one] << ", " << y[min.one] << ") [" << min.one << "] - A(" << x[min.two] << ", " << y[min.two] << ") [" << min.two <<"] = " << min.res << endl;
    return 0;
}
Для хранения минимального и максимального замутил небольшую удобную структурку
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 20:11  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #35
Folko, Ну извините, стаж в программировании всего 2 месяца)
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 20:12     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #36
DaDid, бывает) ну вот я бы так разделил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 20:14     Найти максимальное и минимальное значение между точками и вывести их вместе с точками
Еще ссылки по теме:

C++ Найти максимальное расстояние между точками на плоскости
C++ Вывести подстроку между двумя точками
C++ Найти расстояние между двумя точками на плоскости

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

Или воспользуйтесь поиском по форуму:
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 20:14  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #37
Folko, Cпасибо, я посмотрю)
Yandex
Объявления
01.11.2013, 20:14     Найти максимальное и минимальное значение между точками и вывести их вместе с точками
Ответ Создать тему
Опции темы

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