Форум программистов, компьютерный форум 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 21:30     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #2
DaDid, проходите по всем элементам...
C++
1
2
3
for (int i = 0; i < 6; i++)
    for(int j = 0; j < 6; j++)
    { тут вычисляем расстояние между точками A[i] и A[j] }
Добавлено через 7 минут
DaDid, ну и там еще добавите условие, что i != j, что бы он не считал расстояние между одной и той же точкой
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:31  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #3
C++
1
2
3
for (int i = 0; i < 6; i++)
    for(int j = 0; j < 6; j++)
s=sqrt(pow((x[i]-x[i+j]),2) +pow((y[i]-y[i+j]),2));
то есть так? а разве при i=6 и j=6 не получится что программа будет работать с несуществующей точкой?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 21:42     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #4
DaDid, как написал выше, введите if (i != j). Или тут еще подумал, вроде такой алгоритм должен сработать:
C++
1
2
for (int i = 0; i < 5; i++)
    for (int j = i+1; j <=5; j++)
по моему так не будут высчитываться лишние расстояния. Но я не уверен) протестите

Добавлено через 6 минут
DaDid, Cобсно написал программу, даже на листочке для наглядности расчертил. Получается что вот в таком виде циклы производят ровно столько расчетов, сколько нужно. В прошлом цикле некоторые линии по 2 раза вычислялись
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:55  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #5
Больше спасибо)попробую-отпишусь

Добавлено через 10 минут
Все таки не правильно считает..
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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
float maxrasst(float x[],float y[],int n);
int main()
{
 float x[6],y[6];
for(int i=0; i<6; i++)
        {
            printf("A%d ",i+1);
    printf("vvedite koordinatu x");
    scanf_s("%d", &x[i]);
    printf("vvedite koordinatu y");
    scanf_s("%d", &y[i]);
}
    float s=maxrasst(x,y,6);
    printf("Max rasstoyanie mezdu tochkami A i A=%d\n",s);
   getch();
    return 1;
    ;}
    float maxrasst(float x[],float y[],int n)
    {
        float s=0;
        float smax=-100000;
        
        for (int i = 0; i < n; i++)
    for (int j = i+1; j <=n; j++)
            smax=sqrt(pow((x[i]-x[j]),2) +pow((y[i]-y[j]),2));
        if (s>smax) smax=s;
        return smax;
                
        }
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 21:57     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #6
DaDid, что именно неправильно?
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:59  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #7
неправильно ищет расстояние. Я ввожу координаты точек нулевые для всех, кроме двух. В двух точках ставлю х=0,у=5 и х=0,у=1, максимальное расстояние при таких данных должно быть равным 4, но программа этого не определяет
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:03     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #8
DaDid, сейчас сам попробую сделать
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:13     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #9
DaDid, вот, сделал как у вас. Неправильно считает?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <QTextStream>
#include <math.h>
 
int main(int argc, char *argv[])
{
    QTextStream cout(stdout);
    int x[6] = {0,0,0,0,0,0};
    int y[6] = {0,0,0,0,1,5};
    for (int i = 0; i < 6; i++)
        cout << x[i] << ";";
    cout << endl;
    for (int i = 0; i < 6; i++)
        cout << y[i] << ";";
    cout << endl << "Points" << endl;
    for (int i = 0; i < 5; i++)
        for (int j = i+1; j <=5; j++)
        {
            double temp = sqrt(pow(x[j]-x[i],2)+pow(y[j]-y[i],2));
            cout << "[" << i << " - " << j << "] = " << temp << endl;
        }
    return 0;
}
Миниатюры
Найти максимальное и минимальное значение между точками и вывести их вместе с точками  
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:23  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #10
Найти максимальное и минимальное значение между точками и вывести их вместе с точками
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:25  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #11
Вы изначально задали все элементы, задачей является написать функцию для этих двух массивов.Да и считает, как видите неправильно..
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:26     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #12
DaDid, если вы это на своем коде сделали, то предлагаю вывести результаты вычислений каждого узла. Посмотрим, какое значение неправильное.
Вот переделал под ввод значений. Результаты, если не ошибаюсь, такие же...
Миниатюры
Найти максимальное и минимальное значение между точками и вывести их вместе с точками  
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:47  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #13
Вобщем странно что то у меня..и значения непонятно откуда берутся тоже
Найти максимальное и минимальное значение между точками и вывести их вместе с точками
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 <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
float maxrasst(float x[],float y[],int n);
int main()
{
 float x[6],y[6];
for(int i=0; i<6; i++)
        {
            printf("A%d ",i+1);
    printf("vvedite koordinatu x");
    scanf_s("%d", &x[i]);
    printf("vvedite koordinatu y");
    scanf_s("%d", &y[i]);
}
float smax=0;
    smax=maxrasst(x,y,6);
    printf("Max rasstoyanie mezdu tochkami =%d\n",smax);
   getch();
    return 1;
    ;}
    float maxrasst(float x[],float y[],int n)
    {
        for (int i = 0; i < n; i++)
            printf("x%d = %d   ,   y%d = %d\n",i,x,i,y);
        float s=0;
        float smax=-100000;
        for (int i = 0; i < n; i++)
        for (int j = i+1; j <=n; j++)
    {float s=sqrt(pow(x[j]-x[i],2)+pow(y[j]-y[i],2));
         printf("%d-%d=%d\n",j,i,s);
         if (s>smax) smax=s;}
         return smax;
                
        }
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:49     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #14
DaDid, эммм... попробуйте не 1, 2, 3 вводить а 1.0, 2.0, 3.0... у меня х и у целочисленные
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:52  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #15
вводить в значениях х,у?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:55     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #16
DaDid, да. Они же вещественного типа (или как там называются числа с плавающей точкой)
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:58  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #17
В таком случае при вводе первой координаты сразу пролетает вся программа и выдается невесть что
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:03     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #18
DaDid, попробуйте мой выложенный код у себя запустить
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:07  [ТС]     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #19
Не запускается, ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 23:10     Найти максимальное и минимальное значение между точками и вывести их вместе с точками
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:10     Найти максимальное и минимальное значение между точками и вывести их вместе с точками #20
DaDid, QTextStream замените на iostream, добавьте using namespace std;, уберите QTextStream cout(stdout); и подобную строку
Yandex
Объявления
31.10.2013, 23:10     Найти максимальное и минимальное значение между точками и вывести их вместе с точками
Ответ Создать тему
Опции темы

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