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

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

31.10.2013, 21:21. Показов 5304. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru