Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
#1

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

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

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

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

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

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

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

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

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

36
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 22:55 #16
DaDid, да. Они же вещественного типа (или как там называются числа с плавающей точкой)
0
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 22:58  [ТС] #17
В таком случае при вводе первой координаты сразу пролетает вся программа и выдается невесть что
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:03 #18
DaDid, попробуйте мой выложенный код у себя запустить
1
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:07  [ТС] #19
Не запускается, ошибки
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:10 #20
DaDid, QTextStream замените на iostream, добавьте using namespace std;, уберите QTextStream cout(stdout); и подобную строку
1
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:12  [ТС] #21
Запустилось, работает
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:13 #22
DaDid, ошибок в вычислениях нет?
1
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:15  [ТС] #23
Ошибок нет
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:16 #24
DaDid, то есть задача решена?)
1
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:18  [ТС] #25
Как раз таки нет))Задача заключалась в написании функции, а не в вычислении расстояния.Вычисление расстояния-это задача функции.Суть функции в том, что она универсальна, в моем коде это кое как видно
0
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, получаете результат
Встраивайте ее в свою программу, отписывайтесь, если появятся вопросы. Или надо было вообще всю проверку в функцию впихнуть?
1
DaDid
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
31.10.2013, 23:29  [ТС] #27
Ладно, в любом случае большое спасибо)
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
31.10.2013, 23:41 #28
DaDid, успехов)
0
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;
}
0
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
01.11.2013, 01:14 #30
DaDid, ну если все работает, то норм. А начальное значение max и min стоит делать равным первому элементу. Так надежнее
0
01.11.2013, 01:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 01:14
Привет! Вот еще темы с ответами:

Найти наибольшее расстояние между точками - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;Math.h&gt; using namespace std; double rast(double x1, double x2, double y1,...

Найти расстояние между двумя точками на плоскости - C++
Даны четыре действительных числа: x1, y1, x2, y2. Напишите функцию distance(x1, y1, x2, y2), вычисляющую расстояние между точкой (x1. y1) и...

Файл: найти наибольшее и наименьшее расстояния между точками. - C++
Помогите разобраться Пытаюсь сделать задание: В текстовый файл занесены пары чисел, разделенных пробелом (каждая пара чисел – в новой...

Найти дистанцию между точками на плоскости (использовать перегруженный оператор) - C++
Необходимо найти дистанцию между точками на площади, используя перегруженный оператор. #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.