![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
*оля* |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
Задан вещественный массив размера 2*N, каждая пара элементов которого
содержит координаты точки x и y. Определить номера пар задающих точки с максимальным расстоянием между ними. не могли бы вы объяснить немного сам смысл задачи? и как можно организовать цикл, чтобы рассмотреть все комбинации? расстояние я понимаю нужно считать по формуле: sqrt( pow((x2-x1),2.0)+pow((y2-y1),2.0))? Сообщение отредактировано: *оля* - 29.10.2010 9:48 |
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
Примерно такСообщение отредактировано: Client - 28.10.2010 18:16 |
*оля* |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
ну так мы же получим только согласно задаче x или y, а как сделать, чтобы получить и x, и y, чтобы посчитать расстояние?
либо я не совсем понимаю задание Сообщение отредактировано: *оля* - 28.10.2010 18:20 |
Client |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
хм. Данные расположены
XY XY XY XY так? т.е. вектор? Сообщение отредактировано: Client - 28.10.2010 18:21 |
*оля* |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
вот я и не знаю, что тут имеется в виду, просто смущает то, что в задании массива цифра 2)
не может быть так: X X X X Y Y Y Y ? хотя вряд ли наверное? |
Client |
![]()
Сообщение
#6
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
если матрица, то просто один цикл.
Если вектор. пусть будут точки 11 22 33 44. Итого четыре точки (X и Y) for (i=0; i<n-1; i++) //n = 4
for (j=i+1; j<n; j++)
чтобы получить теперь X и Y для первой точки, можно написать так if ((i-1)*2 +1) //будет X
if ((i-1)*2 +2) //будет Y
и для j надо тоже найти x и y Сообщение отредактировано: Client - 28.10.2010 18:32 |
*оля* |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
|
Client |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
int arr[2][4];
for (int i = 0; i<2; i++)
for(int j = 0; j<4; j++)
arr[i][j] = i*10 + j +1;
for (int i = 0; i<2; i++){
for(int j = 0; j<4; j++)
cout << arr[i][j] << '\t';
cout << '\n';
}
cout << '\n';
for (int i = 0; i<4-1; i++){
cout << "ARR I= "<< i <<"; " << arr[0][i] << "__" << arr[1][i] << '\t';
cout << '\n';
for (int j =i+1; j<4; j++){
cout << "ARR J=" << j << "; " << arr[0][j] << "__" << arr[1][j] << '\t';
}
cout << '\n';
cout << '\n';
}
return 0;
}
Вот как бы визуальное представление.надо только посчитать и найти 2 точки. |
Lapp |
![]()
Сообщение
#9
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Спасибо.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
*оля* |
![]()
Сообщение
#11
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
Client, спасибо большое!)
Lapp, извиняюсь, постараюсь больше правила не нарушать) |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Цитата int arr[2][4];
Цитата Задан вещественный массив размера 2*N , про матрицу речи не было. Должно быть так:Цитата double arr[2*n] Соответственно, решение - как-то вот так (SQR определил как макрос): const int n = 4;
double arr[2*n] = {2, 2, 6, 6, 5, 2, 4, 1};
int first = -1, second = -1;
double dist = 0.0;
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
double new_dist = sqrt(SQR(arr[2*i] - arr[2*j]) + SQR(arr[2*i+1] - arr[2*j+1]));
if(new_dist > dist)
{
dist = new_dist;
first = i; second = j;
}
}
}
|
*оля* |
![]()
Сообщение
#13
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 125 Пол: Женский Репутация: ![]() ![]() ![]() |
да, в условии подразумевалось именно это, вы, как всегда, правы, спасибо большое!
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 1:42 |