Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22

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

31.10.2013, 21:21. Показов 5345. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я уже весь гугл перерыл и всю голову выпотрошил.не получается. Нужно написать функцию для двух массивов х[6] и у[6]. Эти массивы задают координаты точек.Надо найти максимальное и минимальное значение между точками и вывести их вместе с точками. Т.е. в таком примерно виде (Максимальное расстояние между точками А2 и А5 = 12).Фишка в том, что не между соседними точками, а между всеми. Вобщем не получается, помогите кто чем сможет)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.10.2013, 21:21
Ответы с готовыми решениями:

Найти минимальное расстояние между двумя точками
Даны два массива вещественных чисел, x и y. Их длина одинакова и равна n. Каждый (i-й) элемент массива x содержит абсциссу некоторой точки...

Найти максимальное расстояние между точками на плоскости
Даны координаты n точек на плоскости: (X1, Y1), ..., (Xn, Yn) (n ≤ 30). Найти номер пары точек, расстояние между которыми самое большое...

Найти минимальное расстояние между точками множеств и сами точки, расположенные на этом расстоянии
Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами х, у). Найти минимальное расстояние ...

36
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 21:30
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, что бы он не считал расстояние между одной и той же точкой
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:31  [ТС]
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 не получится что программа будет работать с несуществующей точкой?
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 21:42
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 раза вычислялись
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:55  [ТС]
Больше спасибо)попробую-отпишусь

Добавлено через 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;
                
        }
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 21:57
DaDid, что именно неправильно?
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 21:59  [ТС]
неправильно ищет расстояние. Я ввожу координаты точек нулевые для всех, кроме двух. В двух точках ставлю х=0,у=5 и х=0,у=1, максимальное расстояние при таких данных должно быть равным 4, но программа этого не определяет
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 22:03
DaDid, сейчас сам попробую сделать
1
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 22:13
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;
}
Миниатюры
Найти максимальное и минимальное значение между точками и вывести их вместе с точками  
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:23  [ТС]
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:25  [ТС]
Вы изначально задали все элементы, задачей является написать функцию для этих двух массивов.Да и считает, как видите неправильно..
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 22:26
DaDid, если вы это на своем коде сделали, то предлагаю вывести результаты вычислений каждого узла. Посмотрим, какое значение неправильное.
Вот переделал под ввод значений. Результаты, если не ошибаюсь, такие же...
Миниатюры
Найти максимальное и минимальное значение между точками и вывести их вместе с точками  
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:47  [ТС]
Вобщем странно что то у меня..и значения непонятно откуда берутся тоже

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;
                
        }
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 22:49
DaDid, эммм... попробуйте не 1, 2, 3 вводить а 1.0, 2.0, 3.0... у меня х и у целочисленные
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:52  [ТС]
вводить в значениях х,у?
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 22:55
DaDid, да. Они же вещественного типа (или как там называются числа с плавающей точкой)
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:58  [ТС]
В таком случае при вводе первой координаты сразу пролетает вся программа и выдается невесть что
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:03
DaDid, попробуйте мой выложенный код у себя запустить
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:07  [ТС]
Не запускается, ошибки
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:10
DaDid, QTextStream замените на iostream, добавьте using namespace std;, уберите QTextStream cout(stdout); и подобную строку
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.10.2013, 23:10
Помогаю со студенческими работами здесь

Определить минимальное из расстояний между точками
как это сделать?

Вывести подстроку между двумя точками
ЗАДАЧА: На вход дана строка (заканчивается символом 13), содержащая РОВНО 2 точки. Вывести строку между ними. Вот мой говн*код: ...

Найти расстояния между точками
Пожалуйста помогите с задачей.На плоскости есть три точки с координатами A(2;3)B(-1;4)C(0;0).Найти расстояния между точками AB BC CA и...

Вывести на экран точки находящиеся между двумя определенными точками
Здравствуйте , хотел бы уточнить , так как не строится логика в программе или я что-то делаю не так. Допустим у меня есть...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru