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

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

31.10.2013, 21:21. Показов 5280. Ответов 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
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:12  [ТС]
Студворк — интернет-сервис помощи студентам
Запустилось, работает
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:13
DaDid, ошибок в вычислениях нет?
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:15  [ТС]
Ошибок нет
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:16
DaDid, то есть задача решена?)
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:18  [ТС]
Как раз таки нет))Задача заключалась в написании функции, а не в вычислении расстояния.Вычисление расстояния-это задача функции.Суть функции в том, что она универсальна, в моем коде это кое как видно
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:24
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, получаете результат
Встраивайте ее в свою программу, отписывайтесь, если появятся вопросы. Или надо было вообще всю проверку в функцию впихнуть?
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:29  [ТС]
Ладно, в любом случае большое спасибо)
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
31.10.2013, 23:41
DaDid, успехов)
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:02  [ТС]
Вобщем написал все по своему, определяю минимум и максимум, но осталось еще определить номера этих точек.Вот промежуточный вариант)
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;
}
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
01.11.2013, 01:14
DaDid, ну если все работает, то норм. А начальное значение max и min стоит делать равным первому элементу. Так надежнее
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:19  [ТС]
Работать то работает, но я опять в ступоре. Не могу определить номера точек и вывести их
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
01.11.2013, 01:27
DaDid, я конечно немного запутался в вашем коде, но вы можете объявить 2 переменные в main и просто передавать ссылки на них в функции, где определяются эти сами переменные. Что бы передать адрес на статическую переменную, используйте &. Например:
C++
1
2
int a;
func(&a);
0
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 01:39  [ТС]
мало что понял, я уже по всякому пробовал, но не определяются точки
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
01.11.2013, 10:20
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;
}
Для хранения минимального и максимального замутил небольшую удобную структурку
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 20:11  [ТС]
Folko, Ну извините, стаж в программировании всего 2 месяца)
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
01.11.2013, 20:12
DaDid, бывает) ну вот я бы так разделил
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
01.11.2013, 20:14  [ТС]
Folko, Cпасибо, я посмотрю)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2013, 20:14
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru